rm(list = ls())

Install packages

library(mombf)
library(dplyr)
library(tidyr)
library(ggsci)
library(hdm)
library(glmnet)
library(ggplot2)
library(tidyverse)
library(HDCI)
library(gridExtra)
library(pROC)
library("adapt4pv")
library(readr)
library(dplyr)
library(knitr)
library(kableExtra)
library(stringr)
library(data.table)
library(stringr)
library(readr)
library(tidyverse)

Prep

Load data

# Load data
DIR <- '/Users/jonnycodd/Downloads/'

raw_train <- read.csv(file.path(DIR, 'realestate_train.csv'))
raw_test <- read.csv(file.path(DIR, 'realestate_test.csv'))

# Drop X 
raw_train$X <- NA
raw_test$X <- NA

# Convert date to numeric
raw_train$date <- as.Date(raw_train$date_added)
raw_test$date <- as.Date(raw_test$date_added)
n_addresses <- 10
dummy_addresses <- T
dummy_subdistricts <- T
dummy_coordinates <- F
square_cordinates <- T
qcuts <- 100
drop_prev_prices <- T

log_price <- T
# Filter addresses
address_counts <- raw_train %>% count(address_simple)
selected_addresses <- address_counts[address_counts$n > n_addresses, ]$address_simple

cat('Train size before', dim(raw_train), ': after', dim(raw_train[raw_train$address_simple %in% selected_addresses, ]))
Train size before 23770 479 : after 23432 479
raw_train <- raw_train[raw_train$address_simple %in% selected_addresses, ]

cat('Train size before', dim(raw_test), ': after', dim(raw_test[raw_test$address_simple %in% selected_addresses, ]))
Train size before 3200 479 : after 2941 479
raw_test <- raw_test[raw_test$address_simple %in% selected_addresses, ]

Address dummies

generate_dummies <- function(train, test, column) {
  # Combine train and test
  combined_data <- rbind(train, test)
  
  # Creating dummy variables (assuming 'category' is your categorical column)
  combined_data_dummy <- model.matrix(~ get(column) - 1, combined_data)
  
  col_names <- stringr::str_replace(colnames(combined_data_dummy), "get\\(column\\)", paste0(column, '_'))
  #print(col_names)
  colnames(combined_data_dummy) <- col_names
  
  # Splitting back into training and testing sets
  train_rows <- nrow(train)
  x_train_dummy <- combined_data_dummy[1:train_rows, ]
  x_test_dummy <- combined_data_dummy[(train_rows + 1):nrow(combined_data_dummy), ]
  
  # Add the dummy variables to the original dataframes
  train <- cbind(train, x_train_dummy)
  test <- cbind(test, x_test_dummy)
  
  return(list(train = train, test = test))
}

if (dummy_addresses) {
  result <- generate_dummies(raw_train, raw_test, 'address_simple')
  raw_train <- result$train
  raw_test <- result$test  
}

Subdistrict dummies

obtain_subdistrict <- function(df) {
  df$subdistrict <- sapply(strsplit(df$address_simple, ",\\s*"), function(x) x[[2]])
  df[df$subdistrict == 'Dubai', 'subdistrict'] <- sapply(strsplit(df[df$subdistrict == 'Dubai', 'address_simple'], ",\\s*"), function(x) x[[1]])  
  
  return(df)
}

if (dummy_subdistricts) {
  raw_train <- obtain_subdistrict(raw_train)
  raw_test <- obtain_subdistrict(raw_test)
  
  result <- generate_dummies(raw_train, raw_test, 'subdistrict')
  raw_train <- result$train
  raw_test <- result$test  
}

Coordinates

do_quantiles <- function(data, quantiles, prefix) {
    cuts <- cut(data, quantiles, include.lowest = T)
    cuts <- paste0(prefix, cuts)
    return(cuts)
}
  
combined_data <- rbind(raw_train, raw_test)

# Function to assign subregions
assign_subregion <- function(data, lat_breaks, long_breaks) {
  data$subregion <- with(data, paste(
    cut(lat, breaks = lat_breaks, labels = FALSE, include.lowest = TRUE),
    cut(lon, breaks = long_breaks, labels = FALSE, include.lowest = TRUE),
    sep = "_"
  ))
  return(data)
}

if (square_cordinates){
  
  # Lat
  lat_quantiles <- unique(quantile(combined_data$lat, 0:qcuts/qcuts))
  #combined_data$lat_cuts <- do_quantiles(combined_data$lat, quantiles, 'lat_')

  # Lon
  lon_quantiles <- unique(quantile(combined_data$lon, 0:qcuts/qcuts))
  #combined_data$lon_cuts <- do_quantiles(combined_data$lon, quantiles, 'lon_')
  
  # Assign subregions to both datasets
  raw_train <- assign_subregion(raw_train, lat_quantiles, lon_quantiles)
  raw_test <- assign_subregion(raw_test, lat_quantiles, lon_quantiles)

  result <- generate_dummies(raw_train, raw_test, 'subregion')
  raw_train <- result$train
  raw_test <- result$test  
    
}

if (dummy_coordinates) {
  # Lat
  quantiles <- unique(quantile(combined_data$lat, 0:qcuts/qcuts))
  raw_train$lat_cuts <- do_quantiles(raw_train$lat, quantiles, 'lat_')
  raw_test$lat_cuts <- do_quantiles(raw_test$lat, quantiles, 'lat_')
    
  # Lon
  quantiles <- unique(quantile(combined_data$lon, 0:qcuts/qcuts))
  raw_train$lon_cuts <- do_quantiles(raw_train$lon, quantiles, 'lon_')
  raw_test$lon_cuts <- do_quantiles(raw_test$lon, quantiles, 'lon_')


  # Lat
  result <- generate_dummies(raw_train, raw_test, 'lat_cuts')
  raw_train <- result$train
  raw_test <- result$test  
  
  # Lon
  result <- generate_dummies(raw_train, raw_test, 'lon_cuts')
  raw_train <- result$train
  raw_test <- result$test  
}
test <- raw_test 
train <-raw_train



# Keep numeric columns
numeric <- sapply(train, is.numeric)
numeric_test <- sapply(train, is.numeric)

train <- train[, numeric]
test <- test[, numeric]

# Remove columns with 0 variance 
test= test[,apply(test, 2, var) > 0] #remove columns with 0 variance
train= train[,apply(train, 2, var) > 0] #remove columns with 0 variance

cat(dim(train), dim(test))
23432 1114 2941 1079
# To have same columns in train and test
train <- train[, intersect(names(train), names(test))]
test <- test[, intersect(names(train), names(test))]

cat(dim(train), dim(test))
23432 1075 2941 1075

Create additional variables

interaction terms

# Define create interactions terms function
create_interaction_terms <- function(data, variables) {
    # Identify columns that start with "community_"
    subdistrict_cols <- grep("^community_", names(data), value = TRUE)

    # Loop over these columns and create interaction terms
    for(col in subdistrict_cols) {
        for(var in variables) {
            # Check if the variable exists in the data
            if(var %in% names(data)) {
                # Create interaction term and add it to the data
                data[paste0(col, "_", var)] <- data[, col] * data[, var]
            } else {
                warning(paste("Variable", var, "not found in dataframe. Skipping."))
            }
        }
    }
    # Return the modified dataframe
    return(data)
}

# Define the list of variables for interaction
variables_to_interact <- c("beds", "area", "baths", "balcony", "parking", "swimming_pool", "furnished")

# Call the function with your dataframe and the list of variables
train <- create_interaction_terms(train, variables_to_interact)
test <- create_interaction_terms(test, variables_to_interact)

squared vars

train$area_sq <- train$area^2
test$area_sq <- test$area^2

train$bed_sq <- train$bed^2
test$bed_sq <- test$bed^2

train$baths_sq <- train$baths^2
test$baths_sq <- test$baths^2

Remove highly correlated variables

# Check for correlation
correlation_matrix <- cor(train)
high_correlation <- which(abs(correlation_matrix) > 0.99, arr.ind = TRUE)

# Return which variables are getting removex
high_correlation <- high_correlation[high_correlation[, 1] < high_correlation[, 2], ]
pairs_to_remove <- apply(high_correlation, 1, function(index) {
  pair <- colnames(train)[index]
  #cat("High correlation between:", pair[1], "and", pair[2], "\n")
  #cat("Removing:", pair[2], "\n\n")
  return(pair[2])
})

# Remove
test <- test[, !colnames(test) %in% pairs_to_remove]
train <- train[, !colnames(train) %in% pairs_to_remove]

Prepare dataframes

# Split into X and Y for scaling
x_train <- select(train, -price)

num_scale <- 1 # to make weights more interpretable
y_train_orig <- train$price/num_scale
if (log_price) {
  y_train <- log(train$price/num_scale)
} else{
  y_train <- train$price/num_scale
}

x_test <- select(test, -price)
y_test_orig <- test$price/num_scale
if (log_price) {
  y_test <- log(test$price/num_scale)
} else{
  y_test <- test$price/num_scale
}

# Save unscaled
x_train_unscaled <- x_train
x_test_unscaled <- x_test

# Scale 
x_train <- scale(x_train)
x_test <- scale(x_test)

# Create dfs
y_train_df <- data.frame(y_train)
x_train_df <- data.frame(x_train)
colnames(y_train_df)<-'price'

y_test_df <- data.frame(y_test)
x_test_df <- data.frame(x_test)
colnames(y_test_df)<-'price'

# Drop same price variables
if (drop_prev_prices) {
  # save data frame with price vars
  x_test_df_with_pricevars <- x_test_df
  x_train_df_with_pricevars <- x_train_df
  
  # Drop from main dfs
  x_test_df <- x_test_df %>% select(-contains("same"))
  x_train_df <- x_train_df %>% select(-contains("same"))
}

train_df<-cbind(x_train_df,y_train_df)
test_df<-cbind(x_test_df,y_test_df)

Define regression metrics

# Regression metrics
rmse <- function(observed, predicted) {
  sqrt(mean((observed - predicted) ^ 2))
}

log_rmse <- function(observed, predicted) {
  sqrt(mean((log(observed) - log(predicted)) ^ 2))
}

mape <- function(observed, predicted) {
  mean(abs((predicted - observed) / observed)) * 100
}

mae <- function(observed, predicted) {
  mean(abs(observed - predicted))
}

# Metrics CV
regression_metrics <- function(model, data, y_real, num_scale, y_wout_log) {
 
  pred <- predict(model, newx = as.matrix(data), s = fit.lasso$lambda.min, type = "response")
  
  if (log_price) {
      pred <- exp(pred)
      y_real <- y_wout_log
  }
  rmse_value <- rmse(y_real, pred)*num_scale
  mape <- mape(y_real, pred)
  mae <- mae(y_real, pred)*num_scale
  cat('\nRMSE:', rmse_value, 'MAPE:', mape, 'MAE:', mae) 
  
  return(list(rmse=rmse_value, mape=mape, mae=mae))
}

Summarize data

# Calculate statistics for y_train
n_obs_train <- length(y_train)
mean_train <- mean(exp(y_train))
quartiles_train <- quantile(as.matrix(exp(y_train)), probs = c(0.25, 0.5, 0.75))

# Calculate statistics for y_test
n_obs_test <- length(y_test)
mean_test <- mean(y_test)
quartiles_test <- quantile(as.matrix(y_test), probs = c(0.25, 0.5, 0.75))

# Create the data frame with the statistics
stats_table <- data.frame(
  Dataset = c("y_train", "y_test"),
  Observations = c(n_obs_train, n_obs_test),
  Mean = c(mean_train, mean_test),
  `1st Quartile` = c(quartiles_train[1], quartiles_test[1]),
  Median = c(quartiles_train[2], quartiles_test[2]),
  `3rd Quartile` = c(quartiles_train[3], quartiles_test[3])
)

stats_table_long <- stats_table %>% 
  pivot_longer(cols = -Dataset, names_to = "Metric", values_to = "Value")

# Spread the long format table to wide format with one column for y_train and one for y_test
stats_table_wide <- stats_table_long %>% 
  pivot_wider(names_from = Dataset, values_from = Value)

# Create a rotated LaTeX formatted table
output_stats <- 0
if (output_stats == 1) {
  kable(stats_table_wide, format = "latex", booktabs = TRUE, caption = "Descriptive Statistics of y_train and y_test", row.names = FALSE) %>%
  kable_styling(full_width = FALSE, position = "center", latex_options = "striped") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#56B4E9")
}

LASSO

x_test_df[is.na(x_test_df)] <- 0
x_train_df[is.na(x_train_df)] <- 0

cat(dim(x_train_df))
23432 600

LASSO BIC

lasso.bic <- function(y,x,extended=FALSE) {
  #Select model in LASSO path with best BIC (using LASSO regression estimates)
  #Input
  # - y: vector with response variable
  # - x: design matrix
  #
  #Output: list with the following elements
  # - coef: LASSO-estimated regression coefficient with lambda set via BIC
  # - ypred: predicted y
  # - lambda.opt: optimal value of lambda
  # - lambda: data.frame with bic and number of selected variables for each value of lambda
  require(glmnet)
  fit <- glmnet(x=x,y=y,family='gaussian',alpha=1)
  pred <- cbind(1,x) %*% rbind(fit$a0,fit$beta)
  n <- length(y)
  p <- colSums(fit$beta!=0) + 1
  if (!extended){
    bic <- n * log(colSums((y-pred)^2)/length(y)) + n*(log(2*pi)+1) + log(n)*p 
  } else {
    bic <- n * log(colSums((y-pred)^2)/length(y)) + n*(log(2*pi)+1) + log(n)*p + 2*log(choose(ncol(x),p))
  }
  sel <- which.min(bic)
  beta <- c(fit$a0[sel],fit$beta[,sel]); names(beta)[1]= 'Intercept'
  ypred <- pred[,sel]
  ans <- list(coef=beta,ypred=ypred,lambda.opt=fit$lambda[sel],lambda=data.frame(lambda=fit$lambda,bic=bic,nvars=p))
  return(ans)
}
# Fit model
fit.lasso_ebic = lasso.bic(x=as.matrix(x_train_df), y=y_train ,extended = TRUE)
fit.lasso_ebic
$coef
                                                                                                                Intercept 
                                                                                                             1.392875e+01 
                                                                                                                     beds 
                                                                                                             1.170275e-01 
                                                                                                                    baths 
                                                                                                             8.861440e-03 
                                                                                                                     area 
                                                                                                             3.312712e-01 
                                                                                                                      lat 
                                                                                                             0.000000e+00 
                                                                                                                      lon 
                                                                                                            -6.086391e-02 
                                                                                                                  balcony 
                                                                                                             6.473341e-04 
                                                                                                                  parking 
                                                                                                             0.000000e+00 
                                                                                                            swimming_pool 
                                                                                                             7.615165e-05 
                                                                                                                furnished 
                                                                                                             5.283879e-03 
                                                                                           emirate_n_transactions_shift1m 
                                                                                                             0.000000e+00 
                                                                                          emirate_avg_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                          emirate_std_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                   emirate_offplan_n_transactions_shift1m 
                                                                                                             0.000000e+00 
                                                                                  emirate_offplan_avg_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                  emirate_offplan_std_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                     emirate_ready_n_transactions_shift1m 
                                                                                                             0.000000e+00 
                                                                                    emirate_ready_avg_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                           emirate_n_transactions_shift3m 
                                                                                                             0.000000e+00 
                                                                                          emirate_avg_trans_value_shift3m 
                                                                                                             6.201986e-03 
                                                                                          emirate_std_trans_value_shift3m 
                                                                                                             0.000000e+00 
                                                                                   emirate_offplan_n_transactions_shift3m 
                                                                                                             1.621754e-03 
                                                                                  emirate_offplan_avg_trans_value_shift3m 
                                                                                                             0.000000e+00 
                                                                                  emirate_offplan_std_trans_value_shift3m 
                                                                                                             0.000000e+00 
                                                                                     emirate_ready_n_transactions_shift3m 
                                                                                                             0.000000e+00 
                                                                                    emirate_ready_avg_trans_value_shift3m 
                                                                                                             0.000000e+00 
                                                                                           emirate_n_transactions_shift6m 
                                                                                                             0.000000e+00 
                                                                                          emirate_avg_trans_value_shift6m 
                                                                                                             0.000000e+00 
                                                                                          emirate_std_trans_value_shift6m 
                                                                                                             2.616293e-05 
                                                                                   emirate_offplan_n_transactions_shift6m 
                                                                                                             7.096837e-03 
                                                                                  emirate_offplan_avg_trans_value_shift6m 
                                                                                                             0.000000e+00 
                                                                                  emirate_offplan_std_trans_value_shift6m 
                                                                                                             0.000000e+00 
                                                                                     emirate_ready_n_transactions_shift6m 
                                                                                                             0.000000e+00 
                                                                                    emirate_ready_avg_trans_value_shift6m 
                                                                                                             0.000000e+00 
                                                                                              comm_n_transactions_shift1m 
                                                                                                             0.000000e+00 
                                                                                             comm_avg_trans_value_shift1m 
                                                                                                             2.208433e-02 
                                                                                             comm_std_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                      comm_offplan_n_transactions_shift1m 
                                                                                                             8.668232e-03 
                                                                                     comm_offplan_avg_trans_value_shift1m 
                                                                                                             1.397653e-03 
                                                                                     comm_offplan_std_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                        comm_ready_n_transactions_shift1m 
                                                                                                             0.000000e+00 
                                                                                       comm_ready_avg_trans_value_shift1m 
                                                                                                             0.000000e+00 
                                                                                       comm_ready_std_trans_value_shift1m 
                                                                                                            -1.599737e-03 
                                                                                              comm_n_transactions_shift3m 
                                                                                                            -2.571412e-03 
                                                                                             comm_avg_trans_value_shift3m 
                                                                                                             1.246354e-02 
                                                                                             comm_std_trans_value_shift3m 
                                                                                                            -4.807071e-04 
                                                                                      comm_offplan_n_transactions_shift3m 
                                                                                                             0.000000e+00 
                                                                                     comm_offplan_avg_trans_value_shift3m 
                                                                                                             0.000000e+00 
                                                                                     comm_offplan_std_trans_value_shift3m 
                                                                                                             0.000000e+00 
                                                                                        comm_ready_n_transactions_shift3m 
                                                                                                            -5.002837e-03 
                                                                                       comm_ready_avg_trans_value_shift3m 
                                                                                                             4.827915e-03 
                                                                                       comm_ready_std_trans_value_shift3m 
                                                                                                            -7.973677e-04 
                                                                                              comm_n_transactions_shift6m 
                                                                                                             0.000000e+00 
                                                                                             comm_avg_trans_value_shift6m 
                                                                                                             0.000000e+00 
                                                                                             comm_std_trans_value_shift6m 
                                                                                                            -6.882975e-03 
                                                                                      comm_offplan_n_transactions_shift6m 
                                                                                                             4.147210e-03 
                                                                                     comm_offplan_avg_trans_value_shift6m 
                                                                                                            -1.678675e-03 
                                                                                     comm_offplan_std_trans_value_shift6m 
                                                                                                             1.335790e-03 
                                                                                        comm_ready_n_transactions_shift6m 
                                                                                                            -6.807745e-03 
                                                                                       comm_ready_avg_trans_value_shift6m 
                                                                                                             1.599786e-02 
                                                                                                  property_type_Townhouse 
                                                                                                             1.201665e-02 
                                                                                                      property_type_Villa 
                                                                                                             1.554450e-02 
                                                                                 community_Jumeirah.Beach.Residence..JBR. 
                                                                                                             0.000000e+00 
                                                                                     community_Jumeirah.Lake.Towers..JLT. 
                                                                                                            -4.042061e-02 
                                                                                  community_Jumeirah.Village.Circle..JVC. 
                                                                                                             0.000000e+00 
                                                                                            completion_status_constructed 
                                                                                                            -9.004946e-03 
                                                                                     completion_status_under.construction 
                                                                                                            -3.686504e-03 
                                                                                                 metro_JumeirahLakeTowers 
                                                                                                             3.224118e-02 
                                                                                                        metro_DubaiMarina 
                                                                                                            -1.863576e-02 
                                                                                            metro_JumeirahBeachResidence1 
                                                                                                             0.000000e+00 
                                                                                                  metro_Dubai.Marina.Mall 
                                                                                                             0.000000e+00 
                                                                                                    metro_AirportTerminal 
                                                                                                             0.000000e+00 
                                                                                                hospital_EmiratesHospital 
                                                                                                            -1.651125e-01 
                                                                                                   hospital_AsterHospital 
                                                                                                             0.000000e+00 
                                                                                                          market_Waitrose 
                                                                                                             0.000000e+00 
                                                                                                         market_Carrefour 
                                                                                                             0.000000e+00 
                                                                                                         market_Safestway 
                                                                                                            -2.315587e-02 
                                                                                               AED_EUR_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_GBP_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_RUB_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                                AED_RUB_price_q75_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_JPY_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_CNY_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_CAD_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                                AED_CAD_price_q25_shift1m 
                                                                                                             0.000000e+00 
                                                                                                AED_CAD_price_q75_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_SAR_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                                AED_SAR_price_q25_shift1m 
                                                                                                             0.000000e+00 
                                                                                                AED_SAR_price_q75_shift1m 
                                                                                                             0.000000e+00 
                                                                                           AED_SAR_price_low_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_CHF_price_mean_shift1m 
                                                                                                             7.497002e-03 
                                                                                               USD_BTC_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                             USD_BTC_price_median_shift1m 
                                                                                                             0.000000e+00 
                                                                                                USD_BTC_price_q25_shift1m 
                                                                                                             0.000000e+00 
                                                                                                USD_BTC_price_q75_shift1m 
                                                                                                            -1.865849e-04 
                                                                                          USD_BTC_price_high_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                               USD_ETH_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                             USD_ETH_price_median_shift1m 
                                                                                                             0.000000e+00 
                                                                                                USD_ETH_price_q25_shift1m 
                                                                                                            -1.642078e-03 
                                                                                                USD_ETH_price_q75_shift1m 
                                                                                                             0.000000e+00 
                                                                                          USD_ETH_price_high_mean_shift1m 
                                                                                                             1.026729e-03 
                                                                                                SP_500_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                                 SP_500_price_q25_shift1m 
                                                                                                             0.000000e+00 
                                                                                                 SP_500_price_q75_shift1m 
                                                                                                             0.000000e+00 
                                                                                                  DINV_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                                 EMAAR_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                                DEYAAR_price_mean_shift1m 
                                                                                                             0.000000e+00 
                                                                                               AED_EUR_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                               AED_GBP_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                               AED_RUB_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                             AED_RUB_price_median_shift6m 
                                                                                                             0.000000e+00 
                                                                                                AED_RUB_price_q25_shift6m 
                                                                                                             0.000000e+00 
                                                                                                AED_RUB_price_q75_shift6m 
                                                                                                             0.000000e+00 
                                                                                           AED_RUB_price_low_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                               AED_JPY_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                               AED_CNY_price_mean_shift6m 
                                                                                                            -2.674944e-03 
                                                                                               AED_CAD_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                               AED_SAR_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                             AED_SAR_price_median_shift6m 
                                                                                                             0.000000e+00 
                                                                                                AED_SAR_price_q25_shift6m 
                                                                                                             0.000000e+00 
                                                                                                AED_SAR_price_q75_shift6m 
                                                                                                             0.000000e+00 
                                                                                           AED_SAR_price_low_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                               AED_CHF_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                                AED_CHF_price_q25_shift6m 
                                                                                                             0.000000e+00 
                                                                                               USD_BTC_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                                USD_BTC_price_q25_shift6m 
                                                                                                             2.880099e-04 
                                                                                                USD_BTC_price_q75_shift6m 
                                                                                                             0.000000e+00 
                                                                                          USD_BTC_price_high_mean_shift6m 
                                                                                                             1.875581e-07 
                                                                                               USD_ETH_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                             USD_ETH_price_median_shift6m 
                                                                                                             0.000000e+00 
                                                                                                USD_ETH_price_q25_shift6m 
                                                                                                             0.000000e+00 
                                                                                                USD_ETH_price_q75_shift6m 
                                                                                                             0.000000e+00 
                                                                                          USD_ETH_price_high_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                                SP_500_price_mean_shift6m 
                                                                                                             1.086450e-02 
                                                                                                  DINV_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                                 EMAAR_price_mean_shift6m 
                                                                                                             7.838879e-08 
                                                                                                DEYAAR_price_mean_shift6m 
                                                                                                             0.000000e+00 
                                                                                                 DEYAAR_price_q25_shift6m 
                                                                                                             0.000000e+00 
                                                                                                 DEYAAR_price_q75_shift6m 
                                                                                                             0.000000e+00 
                                                                                                residential_index_shift1m 
                                                                                                             0.000000e+00 
                                                                                                residential_index_shift3m 
                                                                                                             0.000000e+00 
                                                                                                 commercial_index_shift1m 
                                                                                                             0.000000e+00 
                                                                                                 commercial_index_shift3m 
                                                                                                             0.000000e+00 
                                                                                                    general_index_shift1m 
                                                                                                             0.000000e+00 
                                                                        housing_water_electricity_gas_other.fuels_shift1m 
                                                                                                             1.596751e-03 
                                                                                                    general_index_shift6m 
                                                                                                             0.000000e+00 
                                                                        housing_water_electricity_gas_other.fuels_shift6m 
                                                                                                             0.000000e+00 
                                                                                                                 gdp_G.20 
                                                                                                             0.000000e+00 
                                                                                                                  gdp_G.7 
                                                                                                             0.000000e+00 
                                                                                                                 gdp_OECD 
                                                                                                             0.000000e+00 
                                                                                                                  gdp_USA 
                                                                                                             0.000000e+00 
                                                                                              gdp_construction_cost.index 
                                                                                                             0.000000e+00 
                                                                                         gdp_construction_non.residential 
                                                                                                             0.000000e+00 
                                                                                                         gdp_construction 
                                                                                                            -9.803358e-04 
                                                                                                     gdp_mining_quarrying 
                                                                                                             0.000000e+00 
                                                                                               gdp_real_estate_activities 
                                                                                                             0.000000e+00 
                                                                                                       gold_price_shift1m 
                                                                                                             0.000000e+00 
                                                                                                gold_price_change_shift1m 
                                                                                                             0.000000e+00 
                                                                                                     petrol_price_shift1m 
                                                                                                             2.514629e-03 
                                                                                              petrol_price_change_shift1m 
                                                                                                             0.000000e+00 
                                                                                                     diesel_price_shift1m 
                                                                                                             0.000000e+00 
                                                                                              diesel_price_change_shift1m 
                                                                                                             0.000000e+00 
                                                                                                   gasoline_price_shift1m 
                                                                                                             0.000000e+00 
                                                                                            gasoline_price_change_shift1m 
                                                                                                             0.000000e+00 
                                                                                                       gold_price_shift3m 
                                                                                                             0.000000e+00 
                                                                                                gold_price_change_shift3m 
                                                                                                             0.000000e+00 
                                                                                                     petrol_price_shift3m 
                                                                                                             8.735181e-03 
                                                                                              petrol_price_change_shift3m 
                                                                                                             0.000000e+00 
                                                                                                     diesel_price_shift3m 
                                                                                                             0.000000e+00 
                                                                                              diesel_price_change_shift3m 
                                                                                                             0.000000e+00 
                                                                                                   gasoline_price_shift3m 
                                                                                                             5.421337e-03 
                                                                                            gasoline_price_change_shift3m 
                                                                                                             0.000000e+00 
                                                                            address_simple_23.Marina..Dubai.Marina..Dubai 
                                                                                                            -1.759641e-04 
                                                                          address_simple_5242.Towers..Dubai.Marina..Dubai 
                                                                                                             1.375533e-01 
                                       address_simple_ACES.Chateau..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -8.457613e-03 
                                 address_simple_Al.Anbar.Tower..Dubai.Marina.Towers..Emaar.6.Towers...Dubai.Marina..Dubai 
                                                                                                            -4.087293e-03 
                                         address_simple_Al.Bateen.Towers..The.Walk..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                             3.612868e-02 
                                      address_simple_Al.Dana.Tower..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.558142e-02 
                                            address_simple_Al.Fattan.Marine.Towers..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                            -1.599322e-02 
                                                                 address_simple_Al.Majara..Al.Majara..Dubai.Marina..Dubai 
                                                                                                             2.179452e-02 
                                  address_simple_Al.Mesk.Tower..Dubai.Marina.Towers..Emaar.6.Towers...Dubai.Marina..Dubai 
                                                                                                             6.045512e-03 
                                address_simple_Al.Murjan.Tower..Dubai.Marina.Towers..Emaar.6.Towers...Dubai.Marina..Dubai 
                                                                                                            -2.152603e-03 
                                                       address_simple_Al.Sahab.Tower..Al.Sahab.Tower..Dubai.Marina..Dubai 
                                                                                                             1.459402e-02 
                                           address_simple_Al.Seef.Tower..JLT.Cluster.U..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             1.073369e-03 
                                          address_simple_Al.Shera.Tower..JLT.Cluster.E..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             3.733937e-03 
                                      address_simple_Al.Waleed.Paradise..JLT.Cluster.R..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -2.661291e-03 
                                             address_simple_ALCOVE..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -8.293355e-04 
                                                       address_simple_Amwaj..Amwaj..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                            -5.068396e-03 
                           address_simple_Arezzo..Tuscan.Residence..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -6.602821e-04 
                                     address_simple_Aria.Residence..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.366866e-04 
                             address_simple_Armada.Tower..Armada.Towers..JLT.Cluster.P..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -7.351819e-03 
                                  address_simple_Astoria.Residence..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -5.315331e-03 
                                                            address_simple_Attessa..Marina.Promenade..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                                             address_simple_Aurora..Marina.Promenade..Dubai.Marina..Dubai 
                                                                                                             2.738629e-03 
                          address_simple_Autumn..Seasons.Community..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.882894e-03 
                                   address_simple_Avanos.Residence..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             4.871286e-04 
                                                                                address_simple_Azure..Dubai.Marina..Dubai 
                                                                                                            -2.636148e-03 
                                                       address_simple_Bahar..Bahar..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                            -3.561296e-03 
                                                 address_simple_Banyan.Tree.Residences..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             2.265715e-02 
                                             address_simple_Bay.Central..Central.Tower...Bay.Central..Dubai.Marina..Dubai 
                                                                                                             3.878313e-03 
                                                             address_simple_Bay.Central..Bay.Central..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                                                          address_simple_Bay.Central..Dubai.Marina..Dubai 
                                                                                                             6.397822e-03 
                                                           address_simple_Beauport..Marina.Promenade..Dubai.Marina..Dubai 
                                                                                                             6.641272e-03 
                                  address_simple_Belgravia.Heights..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.744375e-03 
                                   address_simple_Belgravia.Square..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.190975e-02 
                               address_simple_Belgravia..Belgravia..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.275665e-02 
                                          address_simple_Belgravia..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             8.929834e-03 
                                          address_simple_Belgravia..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.247254e-02 
                                  address_simple_Beverly.Residence..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             9.395942e-03 
                                     address_simple_Binghatti.Gate..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.905931e-03 
                                     address_simple_Binghatti.Gems..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -4.809618e-03 
                                  address_simple_Binghatti.Heights..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.189731e-02 
                                  address_simple_Binghatti.Jasmine..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.886497e-03 
                                   address_simple_Binghatti.Mirage..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                     address_simple_Binghatti.Rose..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                           address_simple_Blakely.Tower..Park.Island..Dubai.Marina..Dubai 
                                                                                                            -2.556961e-03 
                                      address_simple_Bloom.Heights..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.306926e-02 
                                       address_simple_Bloom.Towers..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.410756e-02 
                                                           address_simple_Bonaire.Tower..Park.Island..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                        address_simple_Bonnington.Tower..JLT.Cluster.J..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             1.511265e-02 
                                                                       address_simple_Botanica.Tower..Dubai.Marina..Dubai 
                                                                                                            -1.179106e-02 
                                           address_simple_Botanica..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -7.173517e-03 
                                         address_simple_Cappadocia..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.130513e-02 
                                   address_simple_Catch.Residences..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.175037e-02 
                                                                          address_simple_Cayan.Tower..Dubai.Marina..Dubai 
                                                                                                             2.044113e-02 
                          address_simple_Chaimaa.Avenue.Residences..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             4.859437e-03 
                                   address_simple_Chaimaa.Premiere..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.106505e-03 
                                                                           address_simple_Ciel.Tower..Dubai.Marina..Dubai 
                                                                                                             2.022313e-02 
                                    address_simple_City.Apartments..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.010938e-03 
                                          address_simple_Concorde.Tower..JLT.Cluster.H..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -4.862767e-03 
                                                                    address_simple_Continental.Tower..Dubai.Marina..Dubai 
                                                                                                            -2.301482e-03 
                                  address_simple_Crystal.Residence..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.315923e-03 
                                       address_simple_DAMAC.Ghalia..JVC.District.18..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                                        address_simple_Damac.Heights..Dubai.Marina..Dubai 
                                                                                                             3.095534e-02 
                           address_simple_Dar.Al.Jawhara.Residence..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.204490e-03 
                                                                address_simple_DEC.Tower..DEC.Towers..Dubai.Marina..Dubai 
                                                                                                            -1.562823e-02 
                                                                           address_simple_DEC.Towers..Dubai.Marina..Dubai 
                                                                                                            -5.665760e-03 
                       address_simple_Diamond.Views..Diamond.Views..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.084790e-02 
                                                                            address_simple_Dorra.Bay..Dubai.Marina..Dubai 
                                                                                                             1.222765e-02 
                                                            address_simple_Dream.Tower..Dream.Towers..Dubai.Marina..Dubai 
                                                                                                            -1.029806e-02 
                                                                         address_simple_Dream.Towers..Dubai.Marina..Dubai 
                                                                                                            -7.889141e-03 
                                        address_simple_Dubai.Arch.Tower..JLT.Cluster.G..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -3.940909e-03 
                                                                                       address_simple_Dubai.Marina..Dubai 
                                                                                                             2.338186e-06 
                                        address_simple_Dubai.Star.Tower..JLT.Cluster.L..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                               address_simple_Dusit.Princess.Rijas..JVC.District.18..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             7.852601e-03 
                                        address_simple_Eaton.Place..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.046744e-02 
                                                                      address_simple_Elite.Residence..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                   address_simple_Emirates.Gardens..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -6.204528e-03 
                                                                   address_simple_Escan.Marina.Tower..Dubai.Marina..Dubai 
                                                                                                            -1.112840e-02 
                                                         address_simple_Fairfield.Tower..Park.Island..Dubai.Marina..Dubai 
                                                                                                             7.633930e-03 
                              address_simple_FIVE.Jumeirah.Village..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             3.094400e-02 
                         address_simple_Florence..Tuscan.Residence..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                          address_simple_Fortunato..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.891321e-03 
                                 address_simple_Gardenia.Residency..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             6.791032e-03 
                         address_simple_Gardenia..Emirates.Gardens..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.526312e-03 
                                        address_simple_Global.Lake.View..JLT.Cluster.E..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -2.134761e-03 
                                     address_simple_Goldcrest.Executive..JLT.Cluster.C..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             1.625253e-04 
                                         address_simple_Goldcrest.Views..JLT.Cluster.J..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                                         address_simple_Goldcrest.Views..JLT.Cluster.V..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                         address_simple_Green.Lakes..JLT.Cluster.S..Green.Lake.Towers...Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             3.004865e-03 
                                     address_simple_Hanover.Square..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.435732e-02 
                                   address_simple_Harrington.House..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             5.529601e-03 
                                       address_simple_Haven.Villas..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             6.812069e-03 
                                       address_simple_Hyati.Avenue..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.607324e-03 
                                   address_simple_Hyati.Residences..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                              address_simple_Icon.Tower..JLT.Cluster.L..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -2.969274e-03 
                                              address_simple_Icon.Tower..JLT.Cluster.M..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -8.030880e-03 
                                            address_simple_Indigo.Tower..JLT.Cluster.D..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             5.173813e-03 
                                                                            address_simple_Iris.Blue..Dubai.Marina..Dubai 
                                                                                                             8.607321e-03 
                              address_simple_Joya.Verde.Residences..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.611927e-04 
                   address_simple_Jumeirah.Bay.X1..JLT.Cluster.X..Jumeirah.Bay.Towers...Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -4.931778e-03 
                                                                     address_simple_Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                             0.000000e+00 
address_simple_Jumeirah.Gate.Tower..The.Address.Residences.Jumeirah.Resort.and.Spa..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                             1.045141e-01 
                                                                         address_simple_Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                                             address_simple_Jumeirah.Living.Marina.Gate..Marina.Gate..Dubai.Marina..Dubai 
                                                                                                             9.691117e-03 
                                                                      address_simple_Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                     address_simple_JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                     address_simple_JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.974469e-04 
                                   address_simple_Kensington.Manor..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.236471e-02 
                                                                             address_simple_KG.Tower..Dubai.Marina..Dubai 
                                                                                                            -3.477238e-03 
                                address_simple_Knightsbridge.Court..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.217192e-02 
                              address_simple_La.Riviera.Apartments..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             5.264343e-03 
                                   address_simple_La.Riviera.Azure..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             3.032709e-04 
              address_simple_La.Riviera.Estate..La.Riviera.Estates..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                 address_simple_La.Riviera.Estates..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -3.788640e-04 
                                                                           address_simple_La.Riviera..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                                             address_simple_La.Vie..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                             7.791445e-03 
                                            address_simple_Laguna.Tower..JLT.Cluster.A..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             4.862625e-03 
                                         address_simple_Lake.City.Tower..JLT.Cluster.D..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -6.985533e-03 
                                        address_simple_Lake.Point.Tower..JLT.Cluster.N..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -1.466382e-02 
                                        address_simple_Lake.Shore.Tower..JLT.Cluster.Y..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -8.641166e-03 
                                            address_simple_Lake.Terrace..JLT.Cluster.D..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             7.165506e-03 
                                         address_simple_Lake.View.Tower..JLT.Cluster.B..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -1.174134e-03 
                                      address_simple_Lakeside.Residence..JLT.Cluster.A..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             1.880798e-03 
                         address_simple_Lavender..Emirates.Gardens..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                       address_simple_Laya.Mansion..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -7.431135e-04 
                                    address_simple_Laya.Residences..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -5.370393e-03 
                                   address_simple_Le.Grand.Chateau..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -5.304690e-03 
                 address_simple_Le.Grand.Chateau..Le.Grand.Chateau..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -5.966461e-03 
                                                                           address_simple_LIV.Marina..Dubai.Marina..Dubai 
                                                                                                             1.966688e-02 
                                                                        address_simple_LIV.Residence..Dubai.Marina..Dubai 
                                                                                                             2.551014e-02 
                                      address_simple_Living.Garden..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -7.310204e-03 
                                    address_simple_LOCI.Residences..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                   address_simple_Lolena.Residence..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.619036e-02 
                                   address_simple_Lucky.Residences..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             9.203442e-03 
                                             address_simple_Luma21..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                            address_simple_Madina.Tower..JLT.Cluster.O..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -2.931052e-04 
                                                                        address_simple_Mag.218.Tower..Dubai.Marina..Dubai 
                                                                                                            -8.490503e-03 
                                               address_simple_Mag.Tower..JLT.Cluster.R..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                       address_simple_Magnolia..Emirates.Gardens.2..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                                     address_simple_Manchester.Tower..Dubai.Marina..Dubai 
                                                                                                            -1.677557e-02 
                          address_simple_Maple..Emirates.Gardens.2..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.150886e-03 
                                                                  address_simple_Marina.Arcade.Tower..Dubai.Marina..Dubai 
                                                                                                             1.281431e-02 
                                                                         address_simple_Marina.Crown..Dubai.Marina..Dubai 
                                                                                                            -8.673431e-03 
                                                      address_simple_Marina.Diamond..Marina.Diamonds..Dubai.Marina..Dubai 
                                                                                                            -2.544456e-02 
                                                             address_simple_Marina.Gate..Marina.Gate..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                                                 address_simple_Marina.Heights.Tower..Dubai.Marina..Dubai 
                                                                                                             6.421295e-03 
                                                                    address_simple_Marina.Opal.Tower..Dubai.Marina..Dubai 
                                                                                                            -7.086820e-03 
                                                                         address_simple_Marina.Pearl..Dubai.Marina..Dubai 
                                                                                                            -8.421058e-03 
                                                                      address_simple_Marina.Pinnacle..Dubai.Marina..Dubai 
                                                                                                            -4.056265e-02 
                                                           address_simple_Marina.Quays..Marina.Quays..Dubai.Marina..Dubai 
                                                                                                             2.785635e-02 
                                                   address_simple_Marina.Residence..Marina.Residence..Dubai.Marina..Dubai 
                                                                                                             8.252210e-04 
                                                                       address_simple_Marina.Terrace..Dubai.Marina..Dubai 
                                                                                                            -1.654430e-03 
                                                                         address_simple_Marina.Tower..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                                 address_simple_Marina.View.Tower..Marina.View.Tower..Dubai.Marina..Dubai 
                                                                                                            -8.876724e-03 
                                                           address_simple_Marina.Wharf..Marina.Wharf..Dubai.Marina..Dubai 
                                                                                                             2.291989e-03 
                                      address_simple_Marwa.Heights..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             6.825290e-03 
                                   address_simple_Masaar.Residence..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.379213e-02 
                                          address_simple_MBL.Residences..JLT.Cluster.K..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                                               address_simple_MBL.Royal..JLT.Cluster.K..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             5.215737e-03 
                 address_simple_MILANO.by.Giovanni.Boutique.Suites..JVC.District.17..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             4.047654e-03 
                       address_simple_Mulberry..Emirates.Gardens.2..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -9.761364e-04 
                                                     address_simple_Murjan..Murjan..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                            -1.197618e-02 
                                          address_simple_New.Dubai.Gate..JLT.Cluster.A..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -1.118647e-02 
                                          address_simple_New.Dubai.Gate..JLT.Cluster.Q..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -2.029893e-02 
                                                                                address_simple_No..9..Dubai.Marina..Dubai 
                                                                                                             2.323379e-02 
                   address_simple_Noora.Residence..Noora.Residence..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.026798e-02 
                                            address_simple_O2.Residence..JLT.Cluster.O..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                                           address_simple_O2.Tower..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.352160e-03 
                                                                        address_simple_Ocean.Heights..Dubai.Marina..Dubai 
                                                                                                             1.074031e-02 
                                 address_simple_Orchidea.Residence..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.258317e-03 
                                                                          address_simple_Orra.Marina..Dubai.Marina..Dubai 
                                                                                                             1.812005e-02 
                                   address_simple_Oxford.Boulevard..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             5.535518e-03 
                                   address_simple_Oxford.Residence..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.714485e-03 
                                   address_simple_Oxford.Residence..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -6.924609e-04 
                                             address_simple_Oxford..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.858170e-03 
                                                             address_simple_Paloma..Marina.Promenade..Dubai.Marina..Dubai 
                                                                                                             3.865954e-03 
                                 address_simple_Pantheon.Boulevard..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -3.128374e-04 
                                    address_simple_Pantheon.Elysee..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.447901e-02 
                                    address_simple_Pantheon.Elysee..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.287902e-02 
                                    address_simple_Pantheon.Elysee..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.125828e-02 
                                    address_simple_Park.View.Tower..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             3.236465e-03 
                                         address_simple_Park.Vista..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.415990e-03 
                                   address_simple_Plaza.Residences..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.386451e-03 
                                     address_simple_Plazzo.Heights..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             3.454732e-03 
                                                                       address_simple_Princess.Tower..Dubai.Marina..Dubai 
                                                                                                            -1.503058e-03 
                              address_simple_Pulse.Smart.Residence..JVC.District.11..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -6.877234e-03 
                                     address_simple_Reef.Residence..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.501275e-03 
                                       address_simple_Regina.Tower..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.079703e-04 
                                   address_simple_Rigel.Apartments..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                       address_simple_Rimal..Rimal..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                            -5.823524e-03 
                             address_simple_Rose..Emirates.Gardens..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.642982e-03 
                address_simple_Roxana.Residence..Roxana.Residences..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                  address_simple_Roxana.Residences..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             6.566466e-04 
                                              address_simple_Saba.Tower..JLT.Cluster.Q..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                                                       address_simple_Sadaf..Sadaf..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                            -3.364034e-02 
                                       address_simple_Samana.Waves..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.032047e-02 
                                    address_simple_Sandoval.Garden..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -7.179290e-03 
                                                           address_simple_Sanibel.Tower..Park.Island..Dubai.Marina..Dubai 
                                                                                                             4.849162e-03 
                                                             address_simple_Se7en.City..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -7.842534e-04 
                                  address_simple_Seasons.Community..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -1.861242e-02 
                                     address_simple_Serenity.Lakes..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.302824e-04 
                                  address_simple_Shamal.Residences..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -3.526130e-03 
               address_simple_Shamal.Residences..Shamal.Residences..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -7.761947e-04 
                                       address_simple_Shamal.Waves..JVC.District.14..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -5.734211e-03 
                                                       address_simple_Shams..Shams..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                             0.000000e+00 
                                                            address_simple_Shemara..Marina.Promenade..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                            address_simple_Siena..Tuscan.Residence..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                  address_simple_Signature.Livings..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.399157e-02 
                                                           address_simple_Silverene.Tower..Silverene..Dubai.Marina..Dubai 
                                                                                                             4.736030e-02 
                                                                        address_simple_Skyview.Tower..Dubai.Marina..Dubai 
                                                                                                            -1.245026e-02 
                                     address_simple_Sobha.Daffodil..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                        address_simple_Sparkle.Tower..Sparkle.Towers..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                                                       address_simple_Sparkle.Towers..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                  address_simple_Spica.Residential..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -8.217079e-03 
                                                                         address_simple_Stella.Maris..Dubai.Marina..Dubai 
                                                                                                             2.252549e-02 
                                                                     address_simple_Studio.One.Tower..Dubai.Marina..Dubai 
                                                                                                             4.661417e-02 
                                                                         address_simple_Sulafa.Tower..Dubai.Marina..Dubai 
                                                                                                            -2.063570e-02 
                          address_simple_Summer..Seasons.Community..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                                     address_simple_TFG.Marina.Hotel..Dubai.Marina..Dubai 
                                                                                                             1.228626e-02 
                                                address_simple_The.Address.Dubai.Marina..Mall.Hotel...Dubai.Marina..Dubai 
                                                                                                             4.056777e-02 
                     address_simple_The.Address.Residences.Jumeirah.Resort.and.Spa..Jumeirah.Beach.Residence..JBR...Dubai 
                                                                                                             5.440063e-02 
                                                                        address_simple_The.Belvedere..Dubai.Marina..Dubai 
                                                                                                            -9.104522e-03 
                                                          address_simple_The.Jewel.Tower..The.Jewels..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                      address_simple_The.Manhattan..JVC.District.10..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                            -2.268223e-02 
                                           address_simple_The.Palladium..JLT.Cluster.C..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                             0.000000e+00 
                               address_simple_The.Plaza.Residences..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                                            address_simple_The.Point..Dubai.Marina..Dubai 
                                                                                                             1.544800e-02 
                                        address_simple_The.Portman..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             6.345040e-03 
                                                                    address_simple_The.Royal.Oceanic..Dubai.Marina..Dubai 
                                                                                                            -1.637293e-02 
                                         address_simple_The.Sloane..JVC.District.12..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                   address_simple_The.Square.Tower..JVC.District.13..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             2.354818e-06 
                                                                            address_simple_The.Torch..Dubai.Marina..Dubai 
                                                                                                            -1.496536e-02 
                                                           address_simple_The.Waves.Tower..The.Waves..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                                                              address_simple_The.Zen..Dubai.Marina..Dubai 
                                                                                                            -1.034236e-02 
                                                                           address_simple_Time.Place..Dubai.Marina..Dubai 
                                                                                                            -1.288433e-02 
                                              address_simple_Tower..JVC.District.18..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             0.000000e+00 
                                                                      address_simple_Trident.Bayside..Dubai.Marina..Dubai 
                                                                                                            -7.829083e-04 
                                                              address_simple_Trident.Grand.Residence..Dubai.Marina..Dubai 
                                                                                                            -5.477223e-04 
                                         address_simple_Trident.Marinascape.Avant.Tower..Marinascape..Dubai.Marina..Dubai 
                                                                                                             1.961259e-03 
                                                address_simple_V3.Tower..JLT.Cluster.V..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -6.352265e-04 
                                                         address_simple_Vida.Residences.Dubai.Marina..Dubai.Marina..Dubai 
                                                                                                             7.574271e-02 
                                                                          address_simple_West.Avenue..Dubai.Marina..Dubai 
                                                                                                             2.209712e-02 
                                                address_simple_Wind.Tower..Wind.Towers..Jumeirah.Lake.Towers..JLT...Dubai 
                                                                                                            -1.979713e-03 
                                                                            address_simple_Yacht.Bay..Dubai.Marina..Dubai 
                                                                                                             0.000000e+00 
                                        address_simple_Zaya.Hameni..JVC.District.15..Jumeirah.Village.Circle..JVC...Dubai 
                                                                                                             1.239240e-02 
                                                                        address_simple_Zumurud.Tower..Dubai.Marina..Dubai 
                                                                                                             2.655401e-03 
                                                                                                  subdistrict_Bay.Central 
                                                                                                             1.286281e-02 
                                                                                                 subdistrict_Dubai.Marina 
                                                                                                             0.000000e+00 
                                                                         subdistrict_Dubai.Marina.Towers..Emaar.6.Towers. 
                                                                                                             2.478832e-02 
                                                                                             subdistrict_Emirates.Gardens 
                                                                                                            -1.506782e-02 
                                                                                           subdistrict_Emirates.Gardens.2 
                                                                                                            -2.166670e-02 
                                                                                                subdistrict_JLT.Cluster.A 
                                                                                                             0.000000e+00 
                                                                                                subdistrict_JLT.Cluster.C 
                                                                                                             6.073088e-03 
                                                                                                subdistrict_JLT.Cluster.D 
                                                                                                             0.000000e+00 
                                                                                                subdistrict_JLT.Cluster.E 
                                                                                                             0.000000e+00 
                                                                                                subdistrict_JLT.Cluster.J 
                                                                                                             2.132154e-03 
                                                                                                subdistrict_JLT.Cluster.K 
                                                                                                             4.487640e-02 
                                                                                                subdistrict_JLT.Cluster.L 
                                                                                                            -9.260538e-03 
                                                                                                subdistrict_JLT.Cluster.O 
                                                                                                            -1.455330e-03 
                                                                                                subdistrict_JLT.Cluster.Q 
                                                                                                            -1.250043e-03 
                                                                                                subdistrict_JLT.Cluster.R 
                                                                                                            -7.470379e-03 
                                                                                                subdistrict_JLT.Cluster.V 
                                                                                                            -2.370092e-03 
                                                                               subdistrict_Jumeirah.Beach.Residence..JBR. 
                                                                                                             5.033408e-02 
                                                                                   subdistrict_Jumeirah.Lake.Towers..JLT. 
                                                                                                             0.000000e+00 
                                                                                subdistrict_Jumeirah.Village.Circle..JVC. 
                                                                                                            -2.767294e-04 
                                                                                              subdistrict_JVC.District.10 
                                                                                                             0.000000e+00 
                                                                                              subdistrict_JVC.District.11 
                                                                                                            -9.404392e-03 
                                                                                              subdistrict_JVC.District.12 
                                                                                                             0.000000e+00 
                                                                                              subdistrict_JVC.District.13 
                                                                                                             0.000000e+00 
                                                                                              subdistrict_JVC.District.14 
                                                                                                             2.417718e-02 
                                                                                              subdistrict_JVC.District.15 
                                                                                                             0.000000e+00 
                                                                                              subdistrict_JVC.District.18 
                                                                                                             0.000000e+00 
                                                                                                  subdistrict_Marina.Gate 
                                                                                                             1.025910e-01 
                                                                                             subdistrict_Marina.Promenade 
                                                                                                             4.367328e-02 
                                                                                                  subdistrict_Park.Island 
                                                                                                             7.193746e-03 
                                                                                            subdistrict_Seasons.Community 
                                                                                                            -3.431065e-02 
                                                                                             subdistrict_Tuscan.Residence 
                                                                                                            -1.934605e-02 
                                                                                                          subregion_10_86 
                                                                                                             0.000000e+00 
                                                                                                          subregion_11_62 
                                                                                                             1.012827e-03 
                                                                                                          subregion_11_69 
                                                                                                            -1.125683e-03 
                                                                                                          subregion_11_78 
                                                                                                            -1.696035e-02 
                                                                                                          subregion_11_79 
                                                                                                            -1.808131e-03 
                                                                                                          subregion_11_86 
                                                                                                             0.000000e+00 
                                                                                                          subregion_12_85 
                                                                                                            -1.461890e-03 
                                                                                                          subregion_12_88 
                                                                                                             1.993719e-02 
                                                                                                          subregion_13_81 
                                                                                                            -3.349973e-03 
                                                                                                          subregion_13_84 
                                                                                                             0.000000e+00 
                                                                                                          subregion_13_85 
                                                                                                            -3.453821e-05 
                                                                                                          subregion_19_62 
                                                                                                            -3.327304e-03 
                                                                                                           subregion_2_71 
                                                                                                             2.889080e-03 
                                                                                                           subregion_2_75 
                                                                                                            -1.141106e-02 
                                                                                                           subregion_2_76 
                                                                                                            -1.107234e-02 
                                                                                                          subregion_20_81 
                                                                                                             0.000000e+00 
                                                                                                          subregion_20_87 
                                                                                                             0.000000e+00 
                                                                                                          subregion_21_62 
                                                                                                             8.841333e-04 
                                                                                                          subregion_21_64 
                                                                                                             5.101044e-03 
                                                                                                          subregion_21_71 
                                                                                                             0.000000e+00 
                                                                                                          subregion_21_76 
                                                                                                             0.000000e+00 
                                                                                                          subregion_21_77 
                                                                                                            -2.017738e-03 
                                                                                                          subregion_21_81 
                                                                                                             1.063590e-03 
                                                                                                          subregion_21_87 
                                                                                                             0.000000e+00 
                                                                                                          subregion_22_69 
                                                                                                             0.000000e+00 
                                                                                                          subregion_22_70 
                                                                                                            -9.604404e-04 
                                                                                                          subregion_23_64 
                                                                                                             0.000000e+00 
                                                                                                          subregion_23_66 
                                                                                                             0.000000e+00 
                                                                                                          subregion_23_67 
                                                                                                            -7.295306e-04 
                                                                                                          subregion_23_68 
                                                                                                             3.140786e-04 
                                                                                                          subregion_23_70 
                                                                                                             1.609405e-03 
                                                                                                          subregion_23_71 
                                                                                                            -3.624252e-04 
                                                                                                          subregion_25_62 
                                                                                                            -1.096416e-02 
                                                                                                          subregion_25_87 
                                                                                                             0.000000e+00 
                                                                                                          subregion_27_70 
                                                                                                            -3.817840e-03 
                                                                                                          subregion_27_86 
                                                                                                            -3.194722e-03 
                                                                                                          subregion_28_11 
                                                                                                             0.000000e+00 
                                                                                                          subregion_28_70 
                                                                                                            -1.521384e-03 
                                                                                                          subregion_28_80 
                                                                                                            -8.380283e-04 
                                                                                                          subregion_29_75 
                                                                                                             0.000000e+00 
                                                                                                           subregion_3_61 
                                                                                                             4.702431e-03 
                                                                                                           subregion_3_73 
                                                                                                             0.000000e+00 
                                                                                                          subregion_30_75 
                                                                                                            -3.620997e-04 
                                                                                                          subregion_30_77 
                                                                                                             0.000000e+00 
                                                                                                          subregion_30_78 
                                                                                                            -5.104449e-04 
                                                                                                          subregion_30_80 
                                                                                                             0.000000e+00 
                                                                                                          subregion_30_86 
                                                                                                             1.760090e-03 
                                                                                                          subregion_31_76 
                                                                                                             5.297245e-04 
                                                                                                          subregion_38_23 
                                                                                                             0.000000e+00 
                                                                                                           subregion_4_74 
                                                                                                             0.000000e+00 
                                                                                                          subregion_40_11 
                                                                                                            -6.537351e-04 
                                                                                                           subregion_40_8 
                                                                                                             0.000000e+00 
                                                                                                           subregion_40_9 
                                                                                                            -2.850781e-03 
                                                                                                           subregion_41_9 
                                                                                                             0.000000e+00 
                                                                                                          subregion_43_17 
                                                                                                             5.397983e-03 
                                                                                                          subregion_43_28 
                                                                                                            -3.137082e-03 
                                                                                                           subregion_46_1 
                                                                                                             0.000000e+00 
                                                                                                          subregion_46_16 
                                                                                                             3.302790e-03 
                                                                                                           subregion_47_1 
                                                                                                             2.573074e-04 
                                                                                                           subregion_47_9 
                                                                                                             0.000000e+00 
                                                                                                          subregion_48_10 
                                                                                                             3.853991e-02 
                                                                                                           subregion_49_4 
                                                                                                             0.000000e+00 
                                                                                                           subregion_49_9 
                                                                                                            -9.339004e-04 
                                                                                                           subregion_50_5 
                                                                                                             1.359053e-03 
                                                                                                          subregion_51_23 
                                                                                                             0.000000e+00 
                                                                                                           subregion_51_9 
                                                                                                             0.000000e+00 
                                                                                                          subregion_52_12 
                                                                                                             0.000000e+00 
                                                                                                          subregion_52_13 
                                                                                                             5.842354e-03 
                                                                                                          subregion_52_23 
                                                                                                             5.443049e-04 
                                                                                                          subregion_53_10 
                                                                                                            -1.610128e-04 
                                                                                                           subregion_53_9 
                                                                                                            -8.575609e-04 
                                                                                                          subregion_54_21 
                                                                                                             8.949551e-03 
                                                                                                          subregion_55_13 
                                                                                                            -5.502363e-04 
                                                                                                          subregion_55_22 
                                                                                                             3.309683e-03 
                                                                                                          subregion_55_23 
                                                                                                             2.977464e-03 
                                                                                                          subregion_56_40 
                                                                                                             0.000000e+00 
                                                                                                          subregion_57_24 
                                                                                                             0.000000e+00 
                                                                                                          subregion_57_26 
                                                                                                             7.425261e-04 
                                                                                                          subregion_58_13 
                                                                                                             0.000000e+00 
                                                                                                          subregion_58_44 
                                                                                                            -2.467028e-03 
                                                                                                          subregion_59_19 
                                                                                                             1.781964e-03 
                                                                                                          subregion_59_46 
                                                                                                            -4.088396e-03 
                                                                                                           subregion_6_65 
                                                                                                            -9.099554e-04 
                                                                                                           subregion_6_66 
                                                                                                             0.000000e+00 
                                                                                                           subregion_6_73 
                                                                                                             0.000000e+00 
                                                                                                          subregion_60_15 
                                                                                                            -5.522312e-04 
                                                                                                          subregion_60_20 
                                                                                                             0.000000e+00 
                                                                                                          subregion_60_43 
                                                                                                             0.000000e+00 
                                                                                                          subregion_61_16 
                                                                                                            -2.742322e-03 
                                                                                                          subregion_61_17 
                                                                                                            -2.194045e-03 
                                                                                                          subregion_61_40 
                                                                                                             1.343888e-03 
                                                                                                          subregion_62_16 
                                                                                                             1.478685e-03 
                                                                                                          subregion_62_45 
                                                                                                            -4.027095e-04 
                                                                                                          subregion_63_18 
                                                                                                            -7.381715e-03 
                                                                                                          subregion_65_17 
                                                                                                            -7.126983e-03 
                                                                                                          subregion_66_19 
                                                                                                            -3.542489e-03 
                                                                                                          subregion_66_22 
                                                                                                             1.428867e-03 
                                                                                                          subregion_66_52 
                                                                                                             0.000000e+00 
                                                                                                          subregion_67_20 
                                                                                                             0.000000e+00 
                                                                                                          subregion_67_25 
                                                                                                            -1.604635e-04 
                                                                                                          subregion_67_38 
                                                                                                             0.000000e+00 
                                                                                                          subregion_67_54 
                                                                                                             0.000000e+00 
                                                                                                          subregion_68_54 
                                                                                                             1.558754e-03 
                                                                                                          subregion_69_36 
                                                                                                            -1.933679e-03 
                                                                                                          subregion_69_57 
                                                                                                             0.000000e+00 
                                                                                                           subregion_7_75 
                                                                                                             3.263516e-03 
                                                                                                          subregion_70_40 
                                                                                                            -4.987523e-04 
                                                                                                          subregion_70_58 
                                                                                                             6.220738e-04 
                                                                                                          subregion_71_25 
                                                                                                            -2.577150e-03 
                                                                                                          subregion_71_43 
                                                                                                            -6.525513e-03 
                                                                                                          subregion_71_58 
                                                                                                             1.783139e-03 
                                                                                                          subregion_72_22 
                                                                                                            -4.688980e-03 
                                                                                                          subregion_72_45 
                                                                                                            -6.819560e-03 
                                                                                                          subregion_73_26 
                                                                                                             0.000000e+00 
                                                                                                          subregion_73_46 
                                                                                                            -7.155405e-03 
                                                                                                          subregion_74_25 
                                                                                                            -6.347672e-04 
                                                                                                          subregion_74_30 
                                                                                                            -5.367506e-03 
                                                                                                          subregion_75_28 
                                                                                                             0.000000e+00 
                                                                                                          subregion_75_32 
                                                                                                            -3.737315e-03 
                                                                                                          subregion_75_47 
                                                                                                            -6.434407e-03 
                                                                                                          subregion_76_28 
                                                                                                            -4.320794e-03 
                                                                                                          subregion_76_33 
                                                                                                            -3.765825e-03 
                                                                                                          subregion_76_35 
                                                                                                             0.000000e+00 
                                                                                                          subregion_79_39 
                                                                                                             0.000000e+00 
                                                                                                          subregion_80_56 
                                                                                                             0.000000e+00 
                                                                                                          subregion_83_52 
                                                                                                            -1.006226e-03 
                                                                                                          subregion_85_47 
                                                                                                            -8.017094e-03 
                                                                                                          subregion_89_52 
                                                                                                            -7.056878e-04 
                                                                                                           subregion_9_84 
                                                                                                             0.000000e+00 
                                                                            community_Jumeirah.Beach.Residence..JBR._beds 
                                                                                                             1.244974e-02 
                                                                            community_Jumeirah.Beach.Residence..JBR._area 
                                                                                                             3.912230e-02 
                                                                           community_Jumeirah.Beach.Residence..JBR._baths 
                                                                                                            -8.037744e-04 
                                                                         community_Jumeirah.Beach.Residence..JBR._balcony 
                                                                                                             5.180098e-03 
                                                                         community_Jumeirah.Beach.Residence..JBR._parking 
                                                                                                             0.000000e+00 
                                                                   community_Jumeirah.Beach.Residence..JBR._swimming_pool 
                                                                                                             0.000000e+00 
                                                                       community_Jumeirah.Beach.Residence..JBR._furnished 
                                                                                                             0.000000e+00 
                                                                                community_Jumeirah.Lake.Towers..JLT._beds 
                                                                                                            -8.325302e-03 
                                                                                community_Jumeirah.Lake.Towers..JLT._area 
                                                                                                             2.266453e-02 
                                                                               community_Jumeirah.Lake.Towers..JLT._baths 
                                                                                                            -1.907515e-03 
                                                                             community_Jumeirah.Lake.Towers..JLT._balcony 
                                                                                                             4.587177e-03 
                                                                             community_Jumeirah.Lake.Towers..JLT._parking 
                                                                                                            -6.863897e-04 
                                                                       community_Jumeirah.Lake.Towers..JLT._swimming_pool 
                                                                                                             0.000000e+00 
                                                                           community_Jumeirah.Lake.Towers..JLT._furnished 
                                                                                                             4.199728e-03 
                                                                             community_Jumeirah.Village.Circle..JVC._beds 
                                                                                                             0.000000e+00 
                                                                             community_Jumeirah.Village.Circle..JVC._area 
                                                                                                             1.423924e-02 
                                                                            community_Jumeirah.Village.Circle..JVC._baths 
                                                                                                             1.584949e-02 
                                                                          community_Jumeirah.Village.Circle..JVC._balcony 
                                                                                                             0.000000e+00 
                                                                          community_Jumeirah.Village.Circle..JVC._parking 
                                                                                                            -1.096272e-03 
                                                                    community_Jumeirah.Village.Circle..JVC._swimming_pool 
                                                                                                            -2.050175e-03 
                                                                        community_Jumeirah.Village.Circle..JVC._furnished 
                                                                                                             0.000000e+00 
                                                                                                                  area_sq 
                                                                                                            -1.113189e-01 
                                                                                                                   bed_sq 
                                                                                                            -2.839193e-02 
                                                                                                                 baths_sq 
                                                                                                             0.000000e+00 

$ypred
       1        2        3        4        5        6        7        8        9       10       11       12       13       14 
14.06488 13.46782 13.28481 13.61750 14.01354 14.78569 13.00031 13.31850 13.80043 14.27583 14.34471 13.02994 13.57068 13.07996 
      15       16       17       18       19       20       21       22       23       24       25       26       27       28 
14.47435 14.45283 13.92880 13.31622 13.61043 14.43857 13.91680 13.75609 14.42351 14.16006 14.47854 13.91360 13.90361 13.43392 
      29       30       31       32       33       34       35       36       37       38       39       40       41       42 
12.84053 14.29834 14.37589 14.08261 13.43534 14.71948 13.20961 13.04236 14.43105 13.00723 14.70245 14.27922 13.44584 13.81991 
      43       44       45       46       47       48       49       50       51       52       53       54       55       56 
13.24813 13.43293 14.83464 13.72152 14.05324 13.03376 14.41324 14.98692 13.65383 14.25271 13.44514 14.70186 14.17619 12.88091 
      57       58       59       60       61       62       63       64       65       66       67       68       69       70 
14.01939 13.01470 14.11401 13.81678 13.84412 14.08043 13.99578 13.47127 13.51298 14.84455 14.74994 14.04947 13.80359 14.04292 
      71       72       73       74       75       76       77       78       79       80       81       82       83       84 
14.18797 13.90779 13.73346 14.42988 14.69568 13.53832 14.28582 13.00195 14.67656 14.24433 13.86454 13.91120 13.39972 13.67642 
      85       86       87       88       89       90       91       92       93       94       95       96       97       98 
13.63364 13.65673 13.61236 14.10051 14.14745 13.62142 13.80751 13.91973 14.70749 13.21664 14.21633 14.70455 14.70260 14.99514 
      99      100      101      102      103      104      105      106      107      108      109      110      111      112 
14.04502 13.77741 13.55845 13.12197 14.20797 13.06362 14.72487 14.47541 13.72476 13.85243 13.97219 15.11172 13.69861 13.92307 
     113      114      115      116      117      118      119      120      121      122      123      124      125      126 
14.39296 14.07421 13.47717 13.38186 13.38132 14.59500 12.63903 15.35592 13.15602 14.04734 14.21817 14.55957 13.91413 13.92564 
     127      128      129      130      132      133      134      135      136      137      138      139      140      141 
13.80253 13.47036 12.89224 13.42759 14.03754 13.67046 13.48161 12.96013 13.36553 13.69216 13.43061 14.23712 13.40858 13.98675 
     142      143      144      145      146      147      148      149      150      151      152      153      154      155 
14.11103 14.36771 13.67712 14.45847 14.78473 12.57882 14.07280 14.11201 14.92616 13.40038 13.01189 14.45181 13.65313 14.23224 
     156      157      158      159      160      161      162      163      164      165      166      167      168      169 
13.90014 13.86873 14.54318 13.89732 14.51414 13.62835 13.34097 14.66740 13.26359 14.37572 14.30628 13.44585 14.32229 14.44361 
     170      171      172      173      174      175      176      177      178      179      180      181      182      183 
13.45344 13.78773 13.14092 14.97148 13.06099 15.17788 15.16567 14.52776 14.39382 13.06475 14.71624 14.43189 13.37788 14.38380 
     184      185      186      187      188      189      190      191      192      193      194      195      196      197 
13.04396 13.79230 14.63228 13.44770 13.79314 15.14462 14.49748 14.32654 13.92543 13.79251 13.43580 14.14619 13.60308 13.67384 
     198      199      200      201      202      203      204      205      206      207      208      209      210      211 
14.31251 15.13519 13.97863 13.42571 15.15572 13.51643 14.74899 14.14845 14.15628 13.46143 14.70455 14.52597 13.63114 12.88990 
     212      213      214      215      216      217      218      219      220      221      222      223      224      225 
14.12380 13.72720 14.14273 13.98333 14.55742 13.57511 13.88541 14.22654 13.47474 13.42314 14.31722 13.86742 14.21468 12.77314 
     226      227      228      229      230      231      232      233      234      235      236      237      238      239 
13.73531 13.01268 13.42322 14.78530 13.79665 14.39600 15.02956 13.79942 14.71451 14.06483 13.38894 14.49751 14.11264 14.79036 
     240      241      242      243      244      245      246      247      248      249      250      251      252      253 
12.88158 13.54175 13.32003 14.28171 13.86066 14.32377 12.86545 14.09103 14.48136 13.83931 14.00388 14.40626 13.47496 14.71218 
     254      255      256      257      258      259      260      261      262      263      264      265      266      267 
14.07486 14.67641 13.71247 13.73567 14.70774 14.05818 13.70342 15.09806 13.58297 14.59823 14.15498 13.56416 14.79639 13.67898 
     268      269      270      271      272      273      274      275      276      278      279      280      281      282 
13.91822 13.70473 13.84353 13.99414 13.31653 14.14583 14.67948 14.02748 14.00484 13.45383 13.71674 13.14985 13.60583 14.21427 
     283      284      285      286      287      288      289      290      291      292      293      294      295      296 
14.22464 14.35541 13.98863 13.16219 13.75036 13.77655 13.39852 13.90043 13.67055 13.71073 14.55072 14.56531 13.91091 13.88293 
     297      298      299      300      301      302      303      304      305      306      307      308      309      310 
14.99565 14.66881 14.01601 13.89546 14.11639 14.04674 14.15787 14.59261 13.58643 12.87772 14.09995 14.24804 14.15969 14.80873 
     311      312      313      314      315      316      317      318      319      320      321      322      323      324 
13.43495 14.58527 14.03104 13.68876 12.84479 13.52352 13.55041 14.18537 13.88062 13.73342 14.05355 12.92744 13.42721 13.61694 
     325      326      327      328      329      330      331      332      333      334      335      336      337      338 
14.70514 14.15261 14.41888 13.70829 13.28254 14.67064 14.70337 14.21778 14.65470 13.07813 14.28930 13.52475 13.22778 14.08525 
     339      340      341      342      343      344      345      346      347      348      349      350      351      352 
14.71300 13.64724 14.09044 14.08006 14.16712 13.00084 14.40493 14.30299 14.94492 14.80874 14.12393 13.53353 13.70561 13.74381 
     353      354      355      356      357      358      359      360      361      362      363      364      365      366 
13.45530 13.58167 14.69340 13.96484 13.64119 13.40718 13.92086 13.97863 14.61666 14.12239 13.77824 14.72108 13.58325 14.12393 
     367      369      370      371      372      373      374      375      376      377      378      379      380      381 
13.87507 13.91892 13.52629 14.05644 13.54032 13.49712 14.43279 13.55227 13.93476 13.18257 13.88813 13.97195 14.82789 13.71240 
     382      383      384      385      386      387      388      389      390      391      392      393      394      395 
13.14191 14.09073 13.01023 13.34382 12.90860 13.07225 14.38547 13.42377 13.39206 14.09746 13.56344 13.25978 12.83417 14.01490 
     396      397      398      399      400      401      402      403      404      405      406      407      408      409 
14.33900 14.65221 12.81974 14.25212 13.80828 13.86939 13.73713 14.05705 13.92323 14.48751 14.42425 14.30895 13.82547 13.80381 
     410      411      412      413      414      415      416      417      418      419      420      421      422      423 
14.17045 13.67101 14.13818 14.31633 14.44840 13.65463 12.97888 13.50357 14.68460 13.49774 13.80669 14.51338 14.17328 13.12430 
     424      425      426      427      428      429      430      431      432      433      434      435      436      437 
13.31485 14.27466 13.61045 14.01694 13.71338 12.66340 14.88103 14.30164 14.22263 14.54993 13.72419 13.64207 13.94193 13.70068 
     438      439      440      441      442      443      444      445      446      447      448      449      450      451 
15.43450 13.44181 14.45898 13.74194 13.98276 13.53005 14.39478 13.89887 13.07093 14.99363 12.98294 13.44475 13.39220 14.60486 
     452      453      454      455      456      457      458      459      460      461      462      463      464      465 
14.08246 13.62864 12.91206 13.70723 13.46031 13.47248 13.48026 14.15952 14.88835 14.01787 14.05036 13.91413 13.81585 13.45323 
     466      467      468      469      470      471      472      473      474      475      476      477      478      479 
14.08374 13.80123 13.31228 14.50069 14.13144 13.72114 14.23859 15.36641 14.62164 13.32233 14.37218 14.09702 13.66708 14.30330 
     480      481      482      483      484      485      486      487      488      489      490      491      492      493 
14.24890 13.84196 13.00427 13.23253 14.83641 13.66306 13.56129 13.46321 13.84191 13.01303 14.40624 13.41147 13.81487 13.43520 
     494      495      496      497      498      499      500      501      502      503      504      505      506      508 
13.63339 12.59374 14.71189 14.13072 14.72019 13.82526 13.24118 13.60789 13.71520 14.05983 14.01332 14.01479 12.88995 14.24406 
     509      510      511      512      513      514      515      516      517      518      519      520      521      522 
14.15324 13.56210 14.29329 12.74948 14.68275 14.16049 13.15064 13.72971 14.95919 13.46617 14.82133 13.53772 13.56814 13.80555 
     523      524      525      526      527      528      529      530      531      532      533      534      535      536 
13.67028 12.86576 13.35420 14.45230 13.89554 12.82881 13.26178 12.92915 14.33375 13.84336 13.84305 13.55223 14.25454 14.63581 
     537      538      539      540      541      542      543      544      545      546      547      548      549      550 
13.32428 13.58924 13.98015 13.47522 12.86585 14.31158 14.60775 13.70692 14.32389 13.68488 13.50079 13.66929 13.89672 14.18713 
     551      552      553      554      555      556      557      558      559      560      561      562      563      564 
12.89381 13.90883 14.30393 14.93330 14.57177 13.44099 13.72944 14.44600 13.54899 14.38319 13.24342 13.32323 13.46849 13.53816 
     565      566      567      568      569      570      571      572      574      575      576      577      578      579 
13.09834 14.42200 13.86001 14.25870 13.76896 13.74931 13.88393 14.51654 14.56763 13.39602 13.55730 14.20779 14.02898 14.23823 
     580      581      582      583      584      585      586      587      588      590      591      592      593      594 
13.56579 13.03235 13.88245 14.72561 14.55516 13.91831 13.04985 13.92683 13.45118 13.12807 15.01862 14.13113 13.11663 14.71431 
     595      596      597      598      599      600      601      602      603      604      606      607      608      609 
13.41938 14.41864 13.12088 14.09630 14.63995 13.34141 14.25251 14.61098 13.44738 13.14202 14.40449 13.59186 13.54530 14.20607 
     610      611      612      613      614      615      616      617      618      619      620      621      622      623 
14.69487 12.97186 13.49214 13.70581 13.03995 14.40707 14.21716 14.76625 13.94437 13.24065 14.49787 14.55097 15.24736 14.39753 
     624      625      626      627      628      629      630      631      632      633      634      635      636      637 
13.18649 13.51812 14.05242 13.31431 13.02894 13.39610 13.65513 14.39478 14.02994 13.92608 14.41459 13.34366 14.43613 14.50808 
     638      639      640      641      642      643      644      645      646      647      648      649      650      651 
13.50933 13.54796 13.84631 14.04544 13.36295 13.45960 13.62252 14.52128 13.04444 14.47988 13.45111 13.00833 13.14202 14.39583 
     652      653      654      655      656      657      658      659      660      661      662      663      664      665 
13.56226 14.59261 13.13895 13.71270 13.02553 14.24638 13.12244 14.72312 13.75064 13.34434 14.29002 14.33117 13.97671 13.91652 
     666      667      668      669      670      671      672      673      674      675      676      677      678      679 
13.50758 13.12851 13.05068 14.22689 13.90492 14.73355 13.86678 14.72090 15.02965 14.68904 14.87731 14.02872 14.67650 14.71945 
     680      681      682      683      684      685      686      687      688      689      690      691      692      693 
12.93840 13.51283 14.44361 14.37617 14.01208 14.93042 13.52815 14.65049 14.58783 14.56922 13.14202 13.41943 15.16787 13.71671 
     694      695      696      697      698      699      700      701      702      703      704      705      706      707 
14.94538 13.91380 13.03789 13.44186 13.93482 15.38069 14.55981 15.15627 15.02965 13.88218 13.45603 15.17533 13.30522 13.46321 
     708      709      710      711      712      713      714      715      716      717      718      719      720      721 
14.99530 14.66740 13.14734 13.67928 13.64593 14.36402 15.02965 13.65614 14.79113 15.38717 14.79189 14.56463 14.70501 14.27645 
     722      723      724      725      726      727      728      729      730      731      732      733      734      735 
13.91402 14.03103 13.38656 13.88254 13.96027 14.00868 14.14745 15.02965 13.75076 13.54814 13.54377 14.19731 14.15436 14.10519 
     736      737      738      739      740      741      742      743      744      745      746      747      748      749 
14.28598 13.47925 13.74331 13.20120 14.34471 13.80066 14.58919 14.42765 14.25470 13.23996 14.84029 14.43320 14.72811 13.55381 
     750      751      752      753      754      755      756      757      758      759      760      761      762      763 
13.41732 14.61710 13.71627 14.43379 13.79166 13.43406 13.61445 13.44195 13.96759 14.43227 13.85934 12.86740 13.63692 14.34234 
     764      765      766      767      768      769      770      771      772      773      774      775      776      777 
13.94790 14.22690 13.80793 14.31924 13.14202 13.39288 14.51357 15.04053 12.61075 15.18474 14.38748 15.02965 13.94448 13.87252 
     778      779      780      781      782      783      784      785      786      787      788      789      790      791 
13.66832 13.30102 13.53782 13.57984 12.99805 13.51173 14.54045 14.47886 14.42436 14.72624 13.39370 13.54678 15.17787 14.03830 
     792      793      794      795      796      797      798      799      800      801      802      803      804      805 
14.03185 12.89557 13.37793 14.57367 15.11693 13.02994 14.03595 13.44682 14.22945 13.91314 14.97602 14.23711 13.69590 13.51884 
     806      807      808      809      810      811      812      813      814      815      816      817      818      819 
13.51702 15.17398 15.46605 15.08968 14.30663 14.27645 14.97950 14.22742 14.98852 14.40025 14.73323 15.15244 13.47560 13.50957 
     820      821      822      823      824      825      826      827      828      829      830      831      832      833 
13.83191 14.20938 13.18117 13.44745 14.42832 14.32801 14.08050 13.87544 14.39267 14.19606 14.41162 14.37260 13.91141 12.84847 
     834      835      836      837      838      839      840      841      842      843      844      845      846      847 
13.52804 15.02692 14.58092 14.52268 12.78024 14.09972 14.49370 13.65530 14.42499 13.96364 13.49485 13.98748 13.95324 13.71664 
     848      849      850      851      852      853      854      855      856      857      858      859      860      861 
14.27308 13.79056 13.82939 14.79247 13.74073 13.38162 13.51546 13.92592 13.46834 15.09475 14.51722 14.23805 14.28416 13.91767 
     862      863      864      865      866      867      868      869      870      871      872      873      874      875 
13.46892 13.35045 14.11138 13.98330 13.71108 12.64899 13.71158 14.04385 13.63724 15.12774 13.51891 13.83805 14.78925 13.90513 
     876      877      878      879      880      881      882      883      884      885      886      887      888      889 
13.50003 13.13759 12.93978 13.44205 13.89732 14.62705 14.32982 13.97679 14.38087 13.74710 14.23124 13.87612 13.90955 13.12638 
     890      891      892      894      895      896      897      898      899      900      901      902      903      904 
13.55184 14.04109 14.41324 13.38254 13.39989 13.58559 14.13457 13.48151 13.07258 13.27902 13.70114 13.54983 13.80652 14.03980 
     905      906      907      908      909      910      911      912      913      914      915      916      917      918 
14.38483 13.37155 13.62109 13.15100 13.74901 13.46810 14.47141 13.73689 14.73660 13.33622 12.93717 13.90378 14.71168 13.39645 
     919      920      921      922      923      924      925      926      927      928      929      930      931      932 
14.03574 13.71087 12.78783 14.72962 13.49601 13.38826 13.32678 14.78009 14.70405 13.28081 14.49353 13.39115 13.21386 13.18908 
     933      934      935      936      937      938      939      940      941      942      943      944      945      946 
14.08078 13.46817 13.72125 14.16286 13.26555 14.52391 14.69781 13.73536 14.68275 13.54905 14.35300 13.95428 14.07227 14.14865 
     947      948      949      950      951      952      953      954      955      956      957      958      959      960 
14.88841 13.26197 14.32880 14.23803 14.25220 13.73600 13.73127 14.40541 14.88978 14.11976 14.25697 13.91918 13.87370 14.41277 
     961      962      963      964      965      966      967      968      969      970      971      972      973      974 
14.11890 14.19772 12.86991 13.20614 13.17623 12.96189 13.40247 14.57159 14.39700 14.69037 12.99594 14.07012 13.96630 12.74296 
     975      976      977      978      979      980      981      982      983      984      985      986      987      988 
13.54442 14.28582 14.58154 15.11934 14.53319 13.58674 14.43909 14.43902 14.23790 13.74977 13.82555 13.93738 13.43932 14.28859 
     989      990      991      992      993      994      995      996      997      998      999     1000     1001     1002 
14.42904 13.44297 13.22529 13.68057 13.64547 13.80447 14.87180 14.22670 13.41961 13.75539 14.23816 14.01491 12.87015 14.20864 
    1003     1004     1005     1006     1007     1008 
14.07935 13.65782 14.35789 14.29602 14.16937 14.25139 
 [ reached getOption("max.print") -- omitted 22432 entries ]

$lambda.opt
[1] 0.0002597702

$lambda
NA
# Lambda
fit.lasso_ebic$lambda.opt
[1] 0.0002597702

Ouput coefficients

# Extract coefficients
coef_lasso_ebic <- fit.lasso_ebic$coef
coef_matrix_ebic <- as.matrix(coef_lasso_ebic*100)

# Output non zero coefficients
non_zero <- coef_matrix_ebic !=0
coef_table_ebic <- data.frame(Variable = rownames(coef_matrix_ebic)[non_zero], Coefficients = coef_matrix_ebic[non_zero])
coef_table_ebic <- coef_table_ebic[order(-abs(coef_table_ebic$Coefficients)),]
coef_table_ebic$Coefficients <- round(coef_table_ebic$Coefficients, digits = 4)
coef_table_ebic$Coefficients <- format(coef_table_ebic$Coefficients, scientific = FALSE)
coef_table_ebic_output <- coef_table_ebic[0:20,]
coef_table_ebic_output

# Output to Latex
output_lasso_ebic <- F
if (output_lasso_ebic) {
  kable(coef_table_ebic_output, format = "latex", booktabs = TRUE, caption = "LASSO EBIC Regression results", row.names = FALSE) %>%
  kable_styling(full_width = FALSE, position = "center") %>%
  column_spec(1, border_right = TRUE) %>%
  column_spec(2, width = "2em") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#56B4E9")
}

LASSO CV

Fit model

# Fit model
fit.lasso = cv.glmnet(x=as.matrix(x_train_df), y=y_train, nfolds=10)
View(coef_table_ebic_output)
fit.lasso

Call:  cv.glmnet(x = as.matrix(x_train_df), y = y_train, nfolds = 10) 

Measure: Mean-Squared Error 

       Lambda Index Measure        SE Nonzero
min 4.041e-05   100  0.0185 0.0002061     431
1se 1.965e-04    83  0.0187 0.0001955     389
fit.lasso$lambda.min
[1] 4.041183e-05

###Test out of sample

# TEST: RMSE: 330771.3 MAPE: 14.14537 MAE: 186598.
q <- regression_metrics(fit.lasso, x_test_df, y_test, num_scale, y_test_orig)

RMSE: 352252.3 MAPE: 14.32225 MAE: 190489.3
# TRAIN: RMSE: 222874.8 MAPE: 10.37756 MAE: 142418.3
q <- regression_metrics(fit.lasso, x_train_df, y_train, num_scale, y_train_orig)

RMSE: 222038.4 MAPE: 10.32769 MAE: 141757.7

Ouput coefficients

# Extract coefficients
coef_lasso <- predict(fit.lasso, type = "coefficients", s = fit.lasso$lambda.min)
coef_matrix <- as.matrix(coef_lasso)

# Output non zero coefficients
non_zero <- coef_matrix !=0
coef_table <- data.frame(Variable = rownames(coef_matrix)[non_zero], Coefficients = coef_matrix[non_zero])
coef_table <- coef_table[order(-abs(coef_table$Coefficients)),]
coef_table$Coefficients <- round(coef_table$Coefficients, digits = 4)
coef_table$Coefficients <- format(coef_table$Coefficients, scientific = FALSE)
coef_table_output <- coef_table[0:20,]
coef_table_output

Ouput collapsed coeffs

# Group prefixes for regression output
coef_table <- coef_table %>%
  mutate(prefix = case_when(
    str_detect(Variable, "address_simple_") ~ "Address indicators",
    str_detect(Variable, "AED_") ~ "AED exchange rates",
    str_detect(Variable, "comm_") ~ "Comm variables",
    str_detect(Variable, "community_") ~ "Community indicators",
    str_detect(Variable, "emirate_") ~ "Emirate variables",
    str_detect(Variable, "area_sq") ~ "Area squared",
    str_detect(Variable, "area") ~ "Area",
    str_detect(Variable, "balcony") ~ "# Balconys",
    str_detect(Variable, "baths_sq") ~ "# Balconys squared",
    str_detect(Variable, "bed_sq") ~ "# Beds squared",
    str_detect(Variable, "bed") ~ "# Beds",
    str_detect(Variable, "furnished") ~ "# Furnished indicator",
    str_detect(Variable, "gold") ~ "Gold price",
    str_detect(Variable, "metro") ~ "Distance to metro",
    str_detect(Variable, "parking") ~ "Parking indicator",
    str_detect(Variable, "lon") ~ "Longitude",
    str_detect(Variable, "gdp") ~ "GDP",
    str_detect(Variable, "hospital") ~ "Distance to hospital",
    str_detect(Variable, "subregion") ~ "Region indicators (by geographic coordinates)",
    str_detect(Variable, "market") ~ "Distance to grocery store",
    str_detect(Variable, "parking") ~ "Parking indicator",
    str_detect(Variable, "subdistrict") ~ "Subdistrict indicators",
    str_detect(Variable, "swimming_pool") ~ "Swimming pool indicator",
    str_detect(Variable, "USD_BTC") ~ "USC-crypto exchange rate",
    str_detect(Variable, "(Intercept)") ~ "(Intercept)",
    TRUE ~ "Misc" # For all other cases
  ))
# Collapse the dataframe to only keep the first instance of each prefix
# and count the number of variables of each type
coef_table$Coefficients <- as.numeric(coef_table$Coefficients)
collapsed_coef_matrix <- coef_table %>%
  group_by(prefix) %>%
  summarise(Mean = mean(100*Coefficients),
            Min = min(100*Coefficients),
            Max = max(100*Coefficients),
            Count = n()) %>%
  mutate(Mean = round(Mean, 2),
         Min = round(Min, 2),
         Max = round(Max, 2)) %>%
  arrange(desc(Count))  # Sorting by Max in descending order

# Output to Latex
output_lasso_2 <- F
if (output_lasso_2) {
  kable(collapsed_coef_matrix, format = "latex", booktabs = TRUE, caption = "LASSO Regression results", row.names = FALSE) %>%
  kable_styling(full_width = FALSE, position = "center") %>%
  column_spec(1, border_right = TRUE) %>%
  column_spec(2, width = "2em") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#56B4E9")
}

Investigate percentage error

# Average percentage error 
pred <- predict(fit.lasso, newx = as.matrix(x_test_df), s = fit.lasso$lambda.min, type = "response")
  
if (log_price) {
    pred <- exp(pred)
    y_test <- y_test_orig
}

compare_df <- data.frame(y_test = y_test, predictions = pred)
compare_df$perc_error <- abs((compare_df$y_test-compare_df$s1)/compare_df$y_test)*100
compare_df$error <- abs(compare_df$s1 -compare_df$y_test)

# Calculate the deciles
deciles <- quantile(compare_df$perc_error, probs = seq(0, 1, by = 0.1), na.rm = TRUE)
print(deciles)
          0%          10%          20%          30%          40%          50%          60%          70%          80% 
1.570442e-03 2.015752e+00 3.922690e+00 6.147535e+00 8.574767e+00 1.101259e+01 1.383681e+01 1.733990e+01 2.201897e+01 
         90%         100% 
2.923620e+01 2.147729e+02 

Graphs

# Prepare data for graphs 
test_graph <- data.frame(x_test_unscaled)
test_graph$perc_error <- compare_df$perc_error
test_graph$error  <- compare_df$error

test_graph$price <- compare_df$y_test
test_graph 
# Graph abs error
plot_abs_error<- ggplot(test_graph, aes(x = price, y = error)) +
  theme_minimal() +
  geom_point(color = '#1f77b4' ,size = 0.5) +  # Scatter plot points
  xlab("Price") +
  ylab("Absolute Error") + 
    theme(legend.position="none",
        text = element_text(size = 16),  # Adjust the font size here
        axis.title = element_text(size = 16),  # Adjust the title font size
        axis.text = element_text(size = 10)) +  # Adjust the axis text font size
  scale_x_continuous(labels = scales::comma) 
plot_abs_error

# Graph prediction error

#Prepare data
test_graph_dt <- test_graph %>% as.data.table

test_graph_dt[, community := 'Dubai Marina']

test_graph_dt<- test_graph_dt %>%
  .[community_Jumeirah.Beach.Residence..JBR.==T, community := 'Jumeirah Beach \n Residence (JBR)'] %>%
  .[community_Jumeirah.Lake.Towers..JLT.==T, community := 'Jumeirah Lake \n Towers (JLT)'] %>%
  .[community_Jumeirah.Village.Circle..JVC.==T, community := 'Jumeirah Village \n Circle (JVC)']


plot_perc_error_community <- ggplot(test_graph_dt[test_graph_dt$perc_error < 100], 
                                    aes(y=community, x=perc_error, color=community)) + 
  geom_violin(aes(fill = community,
                  fill = after_scale(colorspace::lighten(fill, .2))),
              draw_quantiles = c(0.05, 0.25, 0.5, 0.75, 0.95),
              size = 0.2, scale='width', colour = "black") +
  stat_summary(fun=mean, geom="point", shape=16, size=3, color="black") + # Highlight the mean in red
  theme_minimal() + 
  theme(legend.position="none",
        text = element_text(size = 16), 
        axis.title = element_text(size = 16),
        axis.text = element_text(size = 10),
        axis.ticks = element_line(size = 0.8),
        axis.title.y.left=element_text(color="black", size=14),
        axis.text.y.left=element_text(color="black", size=12),
        axis.title.y.right=element_text(color="black", size=14),
        axis.text.y.right=element_text(color="black", size=14),
        axis.text.x=element_text(size=12),
        axis.title.x=element_text(size=16),
        plot.title = element_text(hjust = 0.5, size = 16, face = "bold")) +
  scale_x_continuous(labels = scales::comma) +
  labs(y='', x="Prediction Error (%)") 
Warning: Duplicated aesthetics after name standardisation: fill
plot_perc_error_community

# Graph percentage error
plot_perc_error<- ggplot(test_graph, aes(x = price, y = perc_error)) +
  theme_minimal() +
  geom_point(color = '#1f77b4' ,size = 0.5) +  # Scatter plot points
  xlab("Price") +
  ylab("Percentage Error") + 
    theme(legend.position="none",
        text = element_text(size = 16),  # Adjust the font size here
        axis.title = element_text(size = 16),  # Adjust the title font size
        axis.text = element_text(size = 10)) +  # Adjust the axis text font size
  scale_x_continuous(labels = scales::comma) 
plot_perc_error

test_graph$community_var <- test_graph_dt$community

dubai_marina_data <- test_graph %>% 
  filter(community_var == 'Dubai Marina')

# Graph percentage error for Dubai Marina
plot_perc_error<- ggplot(dubai_marina_data, aes(x = price, y = perc_error)) +
  theme_minimal() +
  geom_point(color = '#1f77b4' ,size = 0.5) +  # Scatter plot points
  xlab("Price") +
  ylab("Percentage Error") + 
    theme(legend.position="none",
        text = element_text(size = 16),  # Adjust the font size here
        axis.title = element_text(size = 16),  # Adjust the title font size
        axis.text = element_text(size = 10)) +  # Adjust the axis text font size
  scale_x_continuous(labels = scales::comma) 
plot_perc_error

# Summary table 
summary_table <- test_graph_dt %>%
  group_by(community) %>%
  summarise(
    Q1 = paste0(round(quantile(perc_error, 0.25, na.rm = TRUE), 2), "%"),
    Median = paste0(round(median(perc_error, na.rm = TRUE) , 2), "%"),
    Mean = paste0(round(mean(perc_error, na.rm = TRUE), 2), "%"),
    Q3 = paste0(round(quantile(perc_error, 0.75, na.rm = TRUE), 2), "%"),
  )

print(summary_table)

summary_tab_output<-F 

if (summary_tab_output) {
  kable(summary_table, "latex", booktabs = TRUE, caption = "Summary Table of perc_error by community") %>%
  kable_styling(latex_options = c("striped", "scale_down")) %>%
  add_header_above(c(" " = 1, "Statistics" = 5)) %>%
  column_spec(1, bold = TRUE, color = "white", background = "#56B4E9") %>%
  column_spec(2:6, background = "#F0F0F0")
}
# Get community variable
train_dt <- raw_train %>% as.data.table

train_dt[, community := 'Dubai Marina']

train_dt<- train_dt %>%
  .[community_Jumeirah.Beach.Residence..JBR.==T, community := 'Jumeirah Beach \n Residence (JBR)'] %>%
  .[community_Jumeirah.Lake.Towers..JLT.==T, community := 'Jumeirah Lake \n Towers (JLT)'] %>%
  .[community_Jumeirah.Village.Circle..JVC.==T, community := 'Jumeirah Village \n Circle (JVC)']


# Understand high prediction errors
investigate_train <-cbind(exp(y_train_df), address = raw_train$address_simple, subdistrict =raw_train$subdistrict, community = train_dt$community)
                            
investigate_test <-cbind(exp(y_test_df), prediction = pred, test_graph_dt$perc_error, address = raw_test$address_simple, subdistrict =raw_test$subdistrict, community = test_graph_dt$community)

# Caculate mean values by region in train

variables <- c("price") 

investigate_train <- investigate_train %>%
  group_by(address) %>%
  mutate(across(all_of(variables), ~mean(.x, na.rm = TRUE), .names = "mean_{.col}_address")) %>%
  ungroup() %>%
  group_by(subdistrict) %>%
  mutate(across(all_of(variables), ~mean(.x, na.rm = TRUE), .names = "mean_{.col}_sub")) %>%
  ungroup() %>%
  group_by(community) %>%
  mutate(across(all_of(variables), ~mean(.x, na.rm = TRUE), .names = "mean_{.col}_com")) %>%
  ungroup()



# Drop duplicates
investigate_train <- select(investigate_train, -variables)
investigate_train <- investigate_train %>% 
  distinct()

# Merge with test
merged_df <- merge(investigate_test, investigate_train, by.x=c("address", "subdistrict", "community"), by.y=c("address", "subdistrict", "community"), all.x=TRUE)

merged_df$diff_add <- ((merged_df$price - merged_df$mean_price_address)/merged_df$mean_price_address)*100
merged_df$diff_region <- ((merged_df$price - merged_df$mean_price_sub)/merged_df$mean_price_sub)*100
merged_df$diff_com <- ((merged_df$price - merged_df$mean_price_com)/merged_df$mean_price_com)*100
# Investigatemax error observation
understand <- cbind(perc = test_graph_dt$perc_error, x_test_df)
max_error_row <- understand[which.max(understand$perc), ]

# First, transpose 'max_error_row' and convert it to a dataframe
max_error_row_t <- as.data.frame(t(max_error_row))


# Column-bind the transposed max_error_row with coef_lasso
understand_test <- cbind(coef_matrix, max_error_row_t)

understand_test$output <- understand_test$s1 * understand_test$`3179`
LS0tCnRpdGxlOiAiUHJvamVjdCA1LzEyIgpvdXRwdXQ6CiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAotLS0KYGBge3J9CnJtKGxpc3QgPSBscygpKQpgYGAKCiMgSW5zdGFsbCBwYWNrYWdlcwpgYGB7cn0KbGlicmFyeShtb21iZikKbGlicmFyeShkcGx5cikKbGlicmFyeSh0aWR5cikKbGlicmFyeShnZ3NjaSkKbGlicmFyeShoZG0pCmxpYnJhcnkoZ2xtbmV0KQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KEhEQ0kpCmxpYnJhcnkoZ3JpZEV4dHJhKQpsaWJyYXJ5KHBST0MpCmxpYnJhcnkoImFkYXB0NHB2IikKbGlicmFyeShyZWFkcikKbGlicmFyeShkcGx5cikKbGlicmFyeShrbml0cikKbGlicmFyeShrYWJsZUV4dHJhKQpsaWJyYXJ5KHN0cmluZ3IpCmxpYnJhcnkoZGF0YS50YWJsZSkKbGlicmFyeShzdHJpbmdyKQpsaWJyYXJ5KHJlYWRyKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKYGBgCgojIyBQcmVwCiMjIExvYWQgZGF0YQpgYGB7cn0KIyBMb2FkIGRhdGEKRElSIDwtICcvVXNlcnMvam9ubnljb2RkL0Rvd25sb2Fkcy8nCgpyYXdfdHJhaW4gPC0gcmVhZC5jc3YoZmlsZS5wYXRoKERJUiwgJ3JlYWxlc3RhdGVfdHJhaW4uY3N2JykpCnJhd190ZXN0IDwtIHJlYWQuY3N2KGZpbGUucGF0aChESVIsICdyZWFsZXN0YXRlX3Rlc3QuY3N2JykpCgojIERyb3AgWCAKcmF3X3RyYWluJFggPC0gTkEKcmF3X3Rlc3QkWCA8LSBOQQoKIyBDb252ZXJ0IGRhdGUgdG8gbnVtZXJpYwpyYXdfdHJhaW4kZGF0ZSA8LSBhcy5EYXRlKHJhd190cmFpbiRkYXRlX2FkZGVkKQpyYXdfdGVzdCRkYXRlIDwtIGFzLkRhdGUocmF3X3Rlc3QkZGF0ZV9hZGRlZCkKYGBgCgoKCmBgYHtyfQpuX2FkZHJlc3NlcyA8LSAxMApkdW1teV9hZGRyZXNzZXMgPC0gVApkdW1teV9zdWJkaXN0cmljdHMgPC0gVApkdW1teV9jb29yZGluYXRlcyA8LSBGCnNxdWFyZV9jb3JkaW5hdGVzIDwtIFQKcWN1dHMgPC0gMTAwCmRyb3BfcHJldl9wcmljZXMgPC0gVAoKbG9nX3ByaWNlIDwtIFQKYGBgCgpgYGB7cn0KIyBGaWx0ZXIgYWRkcmVzc2VzCmFkZHJlc3NfY291bnRzIDwtIHJhd190cmFpbiAlPiUgY291bnQoYWRkcmVzc19zaW1wbGUpCnNlbGVjdGVkX2FkZHJlc3NlcyA8LSBhZGRyZXNzX2NvdW50c1thZGRyZXNzX2NvdW50cyRuID4gbl9hZGRyZXNzZXMsIF0kYWRkcmVzc19zaW1wbGUKCmNhdCgnVHJhaW4gc2l6ZSBiZWZvcmUnLCBkaW0ocmF3X3RyYWluKSwgJzogYWZ0ZXInLCBkaW0ocmF3X3RyYWluW3Jhd190cmFpbiRhZGRyZXNzX3NpbXBsZSAlaW4lIHNlbGVjdGVkX2FkZHJlc3NlcywgXSkpCnJhd190cmFpbiA8LSByYXdfdHJhaW5bcmF3X3RyYWluJGFkZHJlc3Nfc2ltcGxlICVpbiUgc2VsZWN0ZWRfYWRkcmVzc2VzLCBdCgpjYXQoJ1RyYWluIHNpemUgYmVmb3JlJywgZGltKHJhd190ZXN0KSwgJzogYWZ0ZXInLCBkaW0ocmF3X3Rlc3RbcmF3X3Rlc3QkYWRkcmVzc19zaW1wbGUgJWluJSBzZWxlY3RlZF9hZGRyZXNzZXMsIF0pKQpyYXdfdGVzdCA8LSByYXdfdGVzdFtyYXdfdGVzdCRhZGRyZXNzX3NpbXBsZSAlaW4lIHNlbGVjdGVkX2FkZHJlc3NlcywgXQpgYGAKCiMjIEFkZHJlc3MgZHVtbWllcwoKYGBge3J9CmdlbmVyYXRlX2R1bW1pZXMgPC0gZnVuY3Rpb24odHJhaW4sIHRlc3QsIGNvbHVtbikgewogICMgQ29tYmluZSB0cmFpbiBhbmQgdGVzdAogIGNvbWJpbmVkX2RhdGEgPC0gcmJpbmQodHJhaW4sIHRlc3QpCiAgCiAgIyBDcmVhdGluZyBkdW1teSB2YXJpYWJsZXMgKGFzc3VtaW5nICdjYXRlZ29yeScgaXMgeW91ciBjYXRlZ29yaWNhbCBjb2x1bW4pCiAgY29tYmluZWRfZGF0YV9kdW1teSA8LSBtb2RlbC5tYXRyaXgofiBnZXQoY29sdW1uKSAtIDEsIGNvbWJpbmVkX2RhdGEpCiAgCiAgY29sX25hbWVzIDwtIHN0cmluZ3I6OnN0cl9yZXBsYWNlKGNvbG5hbWVzKGNvbWJpbmVkX2RhdGFfZHVtbXkpLCAiZ2V0XFwoY29sdW1uXFwpIiwgcGFzdGUwKGNvbHVtbiwgJ18nKSkKICAjcHJpbnQoY29sX25hbWVzKQogIGNvbG5hbWVzKGNvbWJpbmVkX2RhdGFfZHVtbXkpIDwtIGNvbF9uYW1lcwogIAogICMgU3BsaXR0aW5nIGJhY2sgaW50byB0cmFpbmluZyBhbmQgdGVzdGluZyBzZXRzCiAgdHJhaW5fcm93cyA8LSBucm93KHRyYWluKQogIHhfdHJhaW5fZHVtbXkgPC0gY29tYmluZWRfZGF0YV9kdW1teVsxOnRyYWluX3Jvd3MsIF0KICB4X3Rlc3RfZHVtbXkgPC0gY29tYmluZWRfZGF0YV9kdW1teVsodHJhaW5fcm93cyArIDEpOm5yb3coY29tYmluZWRfZGF0YV9kdW1teSksIF0KICAKICAjIEFkZCB0aGUgZHVtbXkgdmFyaWFibGVzIHRvIHRoZSBvcmlnaW5hbCBkYXRhZnJhbWVzCiAgdHJhaW4gPC0gY2JpbmQodHJhaW4sIHhfdHJhaW5fZHVtbXkpCiAgdGVzdCA8LSBjYmluZCh0ZXN0LCB4X3Rlc3RfZHVtbXkpCiAgCiAgcmV0dXJuKGxpc3QodHJhaW4gPSB0cmFpbiwgdGVzdCA9IHRlc3QpKQp9CgppZiAoZHVtbXlfYWRkcmVzc2VzKSB7CiAgcmVzdWx0IDwtIGdlbmVyYXRlX2R1bW1pZXMocmF3X3RyYWluLCByYXdfdGVzdCwgJ2FkZHJlc3Nfc2ltcGxlJykKICByYXdfdHJhaW4gPC0gcmVzdWx0JHRyYWluCiAgcmF3X3Rlc3QgPC0gcmVzdWx0JHRlc3QgIAp9CmBgYAoKIyMgU3ViZGlzdHJpY3QgZHVtbWllcyAKCmBgYHtyfQpvYnRhaW5fc3ViZGlzdHJpY3QgPC0gZnVuY3Rpb24oZGYpIHsKICBkZiRzdWJkaXN0cmljdCA8LSBzYXBwbHkoc3Ryc3BsaXQoZGYkYWRkcmVzc19zaW1wbGUsICIsXFxzKiIpLCBmdW5jdGlvbih4KSB4W1syXV0pCiAgZGZbZGYkc3ViZGlzdHJpY3QgPT0gJ0R1YmFpJywgJ3N1YmRpc3RyaWN0J10gPC0gc2FwcGx5KHN0cnNwbGl0KGRmW2RmJHN1YmRpc3RyaWN0ID09ICdEdWJhaScsICdhZGRyZXNzX3NpbXBsZSddLCAiLFxccyoiKSwgZnVuY3Rpb24oeCkgeFtbMV1dKSAgCiAgCiAgcmV0dXJuKGRmKQp9CgppZiAoZHVtbXlfc3ViZGlzdHJpY3RzKSB7CiAgcmF3X3RyYWluIDwtIG9idGFpbl9zdWJkaXN0cmljdChyYXdfdHJhaW4pCiAgcmF3X3Rlc3QgPC0gb2J0YWluX3N1YmRpc3RyaWN0KHJhd190ZXN0KQogIAogIHJlc3VsdCA8LSBnZW5lcmF0ZV9kdW1taWVzKHJhd190cmFpbiwgcmF3X3Rlc3QsICdzdWJkaXN0cmljdCcpCiAgcmF3X3RyYWluIDwtIHJlc3VsdCR0cmFpbgogIHJhd190ZXN0IDwtIHJlc3VsdCR0ZXN0ICAKfQpgYGAKCiMjIENvb3JkaW5hdGVzCmBgYHtyfQpkb19xdWFudGlsZXMgPC0gZnVuY3Rpb24oZGF0YSwgcXVhbnRpbGVzLCBwcmVmaXgpIHsKICAgIGN1dHMgPC0gY3V0KGRhdGEsIHF1YW50aWxlcywgaW5jbHVkZS5sb3dlc3QgPSBUKQogICAgY3V0cyA8LSBwYXN0ZTAocHJlZml4LCBjdXRzKQogICAgcmV0dXJuKGN1dHMpCn0KICAKY29tYmluZWRfZGF0YSA8LSByYmluZChyYXdfdHJhaW4sIHJhd190ZXN0KQoKIyBGdW5jdGlvbiB0byBhc3NpZ24gc3VicmVnaW9ucwphc3NpZ25fc3VicmVnaW9uIDwtIGZ1bmN0aW9uKGRhdGEsIGxhdF9icmVha3MsIGxvbmdfYnJlYWtzKSB7CiAgZGF0YSRzdWJyZWdpb24gPC0gd2l0aChkYXRhLCBwYXN0ZSgKICAgIGN1dChsYXQsIGJyZWFrcyA9IGxhdF9icmVha3MsIGxhYmVscyA9IEZBTFNFLCBpbmNsdWRlLmxvd2VzdCA9IFRSVUUpLAogICAgY3V0KGxvbiwgYnJlYWtzID0gbG9uZ19icmVha3MsIGxhYmVscyA9IEZBTFNFLCBpbmNsdWRlLmxvd2VzdCA9IFRSVUUpLAogICAgc2VwID0gIl8iCiAgKSkKICByZXR1cm4oZGF0YSkKfQoKaWYgKHNxdWFyZV9jb3JkaW5hdGVzKXsKICAKICAjIExhdAogIGxhdF9xdWFudGlsZXMgPC0gdW5pcXVlKHF1YW50aWxlKGNvbWJpbmVkX2RhdGEkbGF0LCAwOnFjdXRzL3FjdXRzKSkKICAjY29tYmluZWRfZGF0YSRsYXRfY3V0cyA8LSBkb19xdWFudGlsZXMoY29tYmluZWRfZGF0YSRsYXQsIHF1YW50aWxlcywgJ2xhdF8nKQoKICAjIExvbgogIGxvbl9xdWFudGlsZXMgPC0gdW5pcXVlKHF1YW50aWxlKGNvbWJpbmVkX2RhdGEkbG9uLCAwOnFjdXRzL3FjdXRzKSkKICAjY29tYmluZWRfZGF0YSRsb25fY3V0cyA8LSBkb19xdWFudGlsZXMoY29tYmluZWRfZGF0YSRsb24sIHF1YW50aWxlcywgJ2xvbl8nKQogIAogICMgQXNzaWduIHN1YnJlZ2lvbnMgdG8gYm90aCBkYXRhc2V0cwogIHJhd190cmFpbiA8LSBhc3NpZ25fc3VicmVnaW9uKHJhd190cmFpbiwgbGF0X3F1YW50aWxlcywgbG9uX3F1YW50aWxlcykKICByYXdfdGVzdCA8LSBhc3NpZ25fc3VicmVnaW9uKHJhd190ZXN0LCBsYXRfcXVhbnRpbGVzLCBsb25fcXVhbnRpbGVzKQoKICByZXN1bHQgPC0gZ2VuZXJhdGVfZHVtbWllcyhyYXdfdHJhaW4sIHJhd190ZXN0LCAnc3VicmVnaW9uJykKICByYXdfdHJhaW4gPC0gcmVzdWx0JHRyYWluCiAgcmF3X3Rlc3QgPC0gcmVzdWx0JHRlc3QgIAogICAgCn0KCmlmIChkdW1teV9jb29yZGluYXRlcykgewogICMgTGF0CiAgcXVhbnRpbGVzIDwtIHVuaXF1ZShxdWFudGlsZShjb21iaW5lZF9kYXRhJGxhdCwgMDpxY3V0cy9xY3V0cykpCiAgcmF3X3RyYWluJGxhdF9jdXRzIDwtIGRvX3F1YW50aWxlcyhyYXdfdHJhaW4kbGF0LCBxdWFudGlsZXMsICdsYXRfJykKICByYXdfdGVzdCRsYXRfY3V0cyA8LSBkb19xdWFudGlsZXMocmF3X3Rlc3QkbGF0LCBxdWFudGlsZXMsICdsYXRfJykKICAgIAogICMgTG9uCiAgcXVhbnRpbGVzIDwtIHVuaXF1ZShxdWFudGlsZShjb21iaW5lZF9kYXRhJGxvbiwgMDpxY3V0cy9xY3V0cykpCiAgcmF3X3RyYWluJGxvbl9jdXRzIDwtIGRvX3F1YW50aWxlcyhyYXdfdHJhaW4kbG9uLCBxdWFudGlsZXMsICdsb25fJykKICByYXdfdGVzdCRsb25fY3V0cyA8LSBkb19xdWFudGlsZXMocmF3X3Rlc3QkbG9uLCBxdWFudGlsZXMsICdsb25fJykKCgogICMgTGF0CiAgcmVzdWx0IDwtIGdlbmVyYXRlX2R1bW1pZXMocmF3X3RyYWluLCByYXdfdGVzdCwgJ2xhdF9jdXRzJykKICByYXdfdHJhaW4gPC0gcmVzdWx0JHRyYWluCiAgcmF3X3Rlc3QgPC0gcmVzdWx0JHRlc3QgIAogIAogICMgTG9uCiAgcmVzdWx0IDwtIGdlbmVyYXRlX2R1bW1pZXMocmF3X3RyYWluLCByYXdfdGVzdCwgJ2xvbl9jdXRzJykKICByYXdfdHJhaW4gPC0gcmVzdWx0JHRyYWluCiAgcmF3X3Rlc3QgPC0gcmVzdWx0JHRlc3QgIAp9CmBgYAoKYGBge3J9CnRlc3QgPC0gcmF3X3Rlc3QgCnRyYWluIDwtcmF3X3RyYWluCgojIEtlZXAgbnVtZXJpYyBjb2x1bW5zCm51bWVyaWMgPC0gc2FwcGx5KHRyYWluLCBpcy5udW1lcmljKQpudW1lcmljX3Rlc3QgPC0gc2FwcGx5KHRyYWluLCBpcy5udW1lcmljKQoKdHJhaW4gPC0gdHJhaW5bLCBudW1lcmljXQp0ZXN0IDwtIHRlc3RbLCBudW1lcmljXQoKIyBSZW1vdmUgY29sdW1ucyB3aXRoIDAgdmFyaWFuY2UgCnRlc3Q9IHRlc3RbLGFwcGx5KHRlc3QsIDIsIHZhcikgPiAwXSAjcmVtb3ZlIGNvbHVtbnMgd2l0aCAwIHZhcmlhbmNlCnRyYWluPSB0cmFpblssYXBwbHkodHJhaW4sIDIsIHZhcikgPiAwXSAjcmVtb3ZlIGNvbHVtbnMgd2l0aCAwIHZhcmlhbmNlCgpjYXQoZGltKHRyYWluKSwgZGltKHRlc3QpKQoKIyBUbyBoYXZlIHNhbWUgY29sdW1ucyBpbiB0cmFpbiBhbmQgdGVzdAp0cmFpbiA8LSB0cmFpblssIGludGVyc2VjdChuYW1lcyh0cmFpbiksIG5hbWVzKHRlc3QpKV0KdGVzdCA8LSB0ZXN0WywgaW50ZXJzZWN0KG5hbWVzKHRyYWluKSwgbmFtZXModGVzdCkpXQoKY2F0KGRpbSh0cmFpbiksIGRpbSh0ZXN0KSkKYGBgCiMgQ3JlYXRlIGFkZGl0aW9uYWwgdmFyaWFibGVzCgppbnRlcmFjdGlvbiB0ZXJtcwpgYGB7cn0KIyBEZWZpbmUgY3JlYXRlIGludGVyYWN0aW9ucyB0ZXJtcyBmdW5jdGlvbgpjcmVhdGVfaW50ZXJhY3Rpb25fdGVybXMgPC0gZnVuY3Rpb24oZGF0YSwgdmFyaWFibGVzKSB7CiAgICAjIElkZW50aWZ5IGNvbHVtbnMgdGhhdCBzdGFydCB3aXRoICJjb21tdW5pdHlfIgogICAgc3ViZGlzdHJpY3RfY29scyA8LSBncmVwKCJeY29tbXVuaXR5XyIsIG5hbWVzKGRhdGEpLCB2YWx1ZSA9IFRSVUUpCgogICAgIyBMb29wIG92ZXIgdGhlc2UgY29sdW1ucyBhbmQgY3JlYXRlIGludGVyYWN0aW9uIHRlcm1zCiAgICBmb3IoY29sIGluIHN1YmRpc3RyaWN0X2NvbHMpIHsKICAgICAgICBmb3IodmFyIGluIHZhcmlhYmxlcykgewogICAgICAgICAgICAjIENoZWNrIGlmIHRoZSB2YXJpYWJsZSBleGlzdHMgaW4gdGhlIGRhdGEKICAgICAgICAgICAgaWYodmFyICVpbiUgbmFtZXMoZGF0YSkpIHsKICAgICAgICAgICAgICAgICMgQ3JlYXRlIGludGVyYWN0aW9uIHRlcm0gYW5kIGFkZCBpdCB0byB0aGUgZGF0YQogICAgICAgICAgICAgICAgZGF0YVtwYXN0ZTAoY29sLCAiXyIsIHZhcildIDwtIGRhdGFbLCBjb2xdICogZGF0YVssIHZhcl0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHdhcm5pbmcocGFzdGUoIlZhcmlhYmxlIiwgdmFyLCAibm90IGZvdW5kIGluIGRhdGFmcmFtZS4gU2tpcHBpbmcuIikpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAjIFJldHVybiB0aGUgbW9kaWZpZWQgZGF0YWZyYW1lCiAgICByZXR1cm4oZGF0YSkKfQoKIyBEZWZpbmUgdGhlIGxpc3Qgb2YgdmFyaWFibGVzIGZvciBpbnRlcmFjdGlvbgp2YXJpYWJsZXNfdG9faW50ZXJhY3QgPC0gYygiYmVkcyIsICJhcmVhIiwgImJhdGhzIiwgImJhbGNvbnkiLCAicGFya2luZyIsICJzd2ltbWluZ19wb29sIiwgImZ1cm5pc2hlZCIpCgojIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggeW91ciBkYXRhZnJhbWUgYW5kIHRoZSBsaXN0IG9mIHZhcmlhYmxlcwp0cmFpbiA8LSBjcmVhdGVfaW50ZXJhY3Rpb25fdGVybXModHJhaW4sIHZhcmlhYmxlc190b19pbnRlcmFjdCkKdGVzdCA8LSBjcmVhdGVfaW50ZXJhY3Rpb25fdGVybXModGVzdCwgdmFyaWFibGVzX3RvX2ludGVyYWN0KQpgYGAKCnNxdWFyZWQgdmFycwpgYGB7cn0KdHJhaW4kYXJlYV9zcSA8LSB0cmFpbiRhcmVhXjIKdGVzdCRhcmVhX3NxIDwtIHRlc3QkYXJlYV4yCgp0cmFpbiRiZWRfc3EgPC0gdHJhaW4kYmVkXjIKdGVzdCRiZWRfc3EgPC0gdGVzdCRiZWReMgoKdHJhaW4kYmF0aHNfc3EgPC0gdHJhaW4kYmF0aHNeMgp0ZXN0JGJhdGhzX3NxIDwtIHRlc3QkYmF0aHNeMgpgYGAKCgojIyBSZW1vdmUgaGlnaGx5IGNvcnJlbGF0ZWQgdmFyaWFibGVzCmBgYHtyfQojIENoZWNrIGZvciBjb3JyZWxhdGlvbgpjb3JyZWxhdGlvbl9tYXRyaXggPC0gY29yKHRyYWluKQpoaWdoX2NvcnJlbGF0aW9uIDwtIHdoaWNoKGFicyhjb3JyZWxhdGlvbl9tYXRyaXgpID4gMC45OSwgYXJyLmluZCA9IFRSVUUpCgojIFJldHVybiB3aGljaCB2YXJpYWJsZXMgYXJlIGdldHRpbmcgcmVtb3ZleApoaWdoX2NvcnJlbGF0aW9uIDwtIGhpZ2hfY29ycmVsYXRpb25baGlnaF9jb3JyZWxhdGlvblssIDFdIDwgaGlnaF9jb3JyZWxhdGlvblssIDJdLCBdCnBhaXJzX3RvX3JlbW92ZSA8LSBhcHBseShoaWdoX2NvcnJlbGF0aW9uLCAxLCBmdW5jdGlvbihpbmRleCkgewogIHBhaXIgPC0gY29sbmFtZXModHJhaW4pW2luZGV4XQogICNjYXQoIkhpZ2ggY29ycmVsYXRpb24gYmV0d2VlbjoiLCBwYWlyWzFdLCAiYW5kIiwgcGFpclsyXSwgIlxuIikKICAjY2F0KCJSZW1vdmluZzoiLCBwYWlyWzJdLCAiXG5cbiIpCiAgcmV0dXJuKHBhaXJbMl0pCn0pCgojIFJlbW92ZQp0ZXN0IDwtIHRlc3RbLCAhY29sbmFtZXModGVzdCkgJWluJSBwYWlyc190b19yZW1vdmVdCnRyYWluIDwtIHRyYWluWywgIWNvbG5hbWVzKHRyYWluKSAlaW4lIHBhaXJzX3RvX3JlbW92ZV0KYGBgCgoKIyMgUHJlcGFyZSBkYXRhZnJhbWVzCgpgYGB7cn0KIyBTcGxpdCBpbnRvIFggYW5kIFkgZm9yIHNjYWxpbmcKeF90cmFpbiA8LSBzZWxlY3QodHJhaW4sIC1wcmljZSkKCm51bV9zY2FsZSA8LSAxICMgdG8gbWFrZSB3ZWlnaHRzIG1vcmUgaW50ZXJwcmV0YWJsZQp5X3RyYWluX29yaWcgPC0gdHJhaW4kcHJpY2UvbnVtX3NjYWxlCmlmIChsb2dfcHJpY2UpIHsKICB5X3RyYWluIDwtIGxvZyh0cmFpbiRwcmljZS9udW1fc2NhbGUpCn0gZWxzZXsKICB5X3RyYWluIDwtIHRyYWluJHByaWNlL251bV9zY2FsZQp9Cgp4X3Rlc3QgPC0gc2VsZWN0KHRlc3QsIC1wcmljZSkKeV90ZXN0X29yaWcgPC0gdGVzdCRwcmljZS9udW1fc2NhbGUKaWYgKGxvZ19wcmljZSkgewogIHlfdGVzdCA8LSBsb2codGVzdCRwcmljZS9udW1fc2NhbGUpCn0gZWxzZXsKICB5X3Rlc3QgPC0gdGVzdCRwcmljZS9udW1fc2NhbGUKfQoKIyBTYXZlIHVuc2NhbGVkCnhfdHJhaW5fdW5zY2FsZWQgPC0geF90cmFpbgp4X3Rlc3RfdW5zY2FsZWQgPC0geF90ZXN0CgojIFNjYWxlIAp4X3RyYWluIDwtIHNjYWxlKHhfdHJhaW4pCnhfdGVzdCA8LSBzY2FsZSh4X3Rlc3QpCgojIENyZWF0ZSBkZnMKeV90cmFpbl9kZiA8LSBkYXRhLmZyYW1lKHlfdHJhaW4pCnhfdHJhaW5fZGYgPC0gZGF0YS5mcmFtZSh4X3RyYWluKQpjb2xuYW1lcyh5X3RyYWluX2RmKTwtJ3ByaWNlJwoKeV90ZXN0X2RmIDwtIGRhdGEuZnJhbWUoeV90ZXN0KQp4X3Rlc3RfZGYgPC0gZGF0YS5mcmFtZSh4X3Rlc3QpCmNvbG5hbWVzKHlfdGVzdF9kZik8LSdwcmljZScKCiMgRHJvcCBzYW1lIHByaWNlIHZhcmlhYmxlcwppZiAoZHJvcF9wcmV2X3ByaWNlcykgewogICMgc2F2ZSBkYXRhIGZyYW1lIHdpdGggcHJpY2UgdmFycwogIHhfdGVzdF9kZl93aXRoX3ByaWNldmFycyA8LSB4X3Rlc3RfZGYKICB4X3RyYWluX2RmX3dpdGhfcHJpY2V2YXJzIDwtIHhfdHJhaW5fZGYKICAKICAjIERyb3AgZnJvbSBtYWluIGRmcwogIHhfdGVzdF9kZiA8LSB4X3Rlc3RfZGYgJT4lIHNlbGVjdCgtY29udGFpbnMoInNhbWUiKSkKICB4X3RyYWluX2RmIDwtIHhfdHJhaW5fZGYgJT4lIHNlbGVjdCgtY29udGFpbnMoInNhbWUiKSkKfQoKdHJhaW5fZGY8LWNiaW5kKHhfdHJhaW5fZGYseV90cmFpbl9kZikKdGVzdF9kZjwtY2JpbmQoeF90ZXN0X2RmLHlfdGVzdF9kZikKYGBgCgojIyBEZWZpbmUgcmVncmVzc2lvbiBtZXRyaWNzCmBgYHtyfQojIFJlZ3Jlc3Npb24gbWV0cmljcwpybXNlIDwtIGZ1bmN0aW9uKG9ic2VydmVkLCBwcmVkaWN0ZWQpIHsKICBzcXJ0KG1lYW4oKG9ic2VydmVkIC0gcHJlZGljdGVkKSBeIDIpKQp9Cgpsb2dfcm1zZSA8LSBmdW5jdGlvbihvYnNlcnZlZCwgcHJlZGljdGVkKSB7CiAgc3FydChtZWFuKChsb2cob2JzZXJ2ZWQpIC0gbG9nKHByZWRpY3RlZCkpIF4gMikpCn0KCm1hcGUgPC0gZnVuY3Rpb24ob2JzZXJ2ZWQsIHByZWRpY3RlZCkgewogIG1lYW4oYWJzKChwcmVkaWN0ZWQgLSBvYnNlcnZlZCkgLyBvYnNlcnZlZCkpICogMTAwCn0KCm1hZSA8LSBmdW5jdGlvbihvYnNlcnZlZCwgcHJlZGljdGVkKSB7CiAgbWVhbihhYnMob2JzZXJ2ZWQgLSBwcmVkaWN0ZWQpKQp9CgojIE1ldHJpY3MgQ1YKcmVncmVzc2lvbl9tZXRyaWNzIDwtIGZ1bmN0aW9uKG1vZGVsLCBkYXRhLCB5X3JlYWwsIG51bV9zY2FsZSwgeV93b3V0X2xvZykgewogCiAgcHJlZCA8LSBwcmVkaWN0KG1vZGVsLCBuZXd4ID0gYXMubWF0cml4KGRhdGEpLCBzID0gZml0Lmxhc3NvJGxhbWJkYS5taW4sIHR5cGUgPSAicmVzcG9uc2UiKQogIAogIGlmIChsb2dfcHJpY2UpIHsKICAgICAgcHJlZCA8LSBleHAocHJlZCkKICAgICAgeV9yZWFsIDwtIHlfd291dF9sb2cKICB9CiAgcm1zZV92YWx1ZSA8LSBybXNlKHlfcmVhbCwgcHJlZCkqbnVtX3NjYWxlCiAgbWFwZSA8LSBtYXBlKHlfcmVhbCwgcHJlZCkKICBtYWUgPC0gbWFlKHlfcmVhbCwgcHJlZCkqbnVtX3NjYWxlCiAgY2F0KCdcblJNU0U6Jywgcm1zZV92YWx1ZSwgJ01BUEU6JywgbWFwZSwgJ01BRTonLCBtYWUpIAogIAogIHJldHVybihsaXN0KHJtc2U9cm1zZV92YWx1ZSwgbWFwZT1tYXBlLCBtYWU9bWFlKSkKfQoKYGBgCgoKIyMgU3VtbWFyaXplIGRhdGEgCgpgYGB7cn0KIyBDYWxjdWxhdGUgc3RhdGlzdGljcyBmb3IgeV90cmFpbgpuX29ic190cmFpbiA8LSBsZW5ndGgoeV90cmFpbikKbWVhbl90cmFpbiA8LSBtZWFuKGV4cCh5X3RyYWluKSkKcXVhcnRpbGVzX3RyYWluIDwtIHF1YW50aWxlKGFzLm1hdHJpeChleHAoeV90cmFpbikpLCBwcm9icyA9IGMoMC4yNSwgMC41LCAwLjc1KSkKCiMgQ2FsY3VsYXRlIHN0YXRpc3RpY3MgZm9yIHlfdGVzdApuX29ic190ZXN0IDwtIGxlbmd0aCh5X3Rlc3QpCm1lYW5fdGVzdCA8LSBtZWFuKHlfdGVzdCkKcXVhcnRpbGVzX3Rlc3QgPC0gcXVhbnRpbGUoYXMubWF0cml4KHlfdGVzdCksIHByb2JzID0gYygwLjI1LCAwLjUsIDAuNzUpKQoKIyBDcmVhdGUgdGhlIGRhdGEgZnJhbWUgd2l0aCB0aGUgc3RhdGlzdGljcwpzdGF0c190YWJsZSA8LSBkYXRhLmZyYW1lKAogIERhdGFzZXQgPSBjKCJ5X3RyYWluIiwgInlfdGVzdCIpLAogIE9ic2VydmF0aW9ucyA9IGMobl9vYnNfdHJhaW4sIG5fb2JzX3Rlc3QpLAogIE1lYW4gPSBjKG1lYW5fdHJhaW4sIG1lYW5fdGVzdCksCiAgYDFzdCBRdWFydGlsZWAgPSBjKHF1YXJ0aWxlc190cmFpblsxXSwgcXVhcnRpbGVzX3Rlc3RbMV0pLAogIE1lZGlhbiA9IGMocXVhcnRpbGVzX3RyYWluWzJdLCBxdWFydGlsZXNfdGVzdFsyXSksCiAgYDNyZCBRdWFydGlsZWAgPSBjKHF1YXJ0aWxlc190cmFpblszXSwgcXVhcnRpbGVzX3Rlc3RbM10pCikKCnN0YXRzX3RhYmxlX2xvbmcgPC0gc3RhdHNfdGFibGUgJT4lIAogIHBpdm90X2xvbmdlcihjb2xzID0gLURhdGFzZXQsIG5hbWVzX3RvID0gIk1ldHJpYyIsIHZhbHVlc190byA9ICJWYWx1ZSIpCgojIFNwcmVhZCB0aGUgbG9uZyBmb3JtYXQgdGFibGUgdG8gd2lkZSBmb3JtYXQgd2l0aCBvbmUgY29sdW1uIGZvciB5X3RyYWluIGFuZCBvbmUgZm9yIHlfdGVzdApzdGF0c190YWJsZV93aWRlIDwtIHN0YXRzX3RhYmxlX2xvbmcgJT4lIAogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBEYXRhc2V0LCB2YWx1ZXNfZnJvbSA9IFZhbHVlKQoKIyBDcmVhdGUgYSByb3RhdGVkIExhVGVYIGZvcm1hdHRlZCB0YWJsZQpvdXRwdXRfc3RhdHMgPC0gMAppZiAob3V0cHV0X3N0YXRzID09IDEpIHsKICBrYWJsZShzdGF0c190YWJsZV93aWRlLCBmb3JtYXQgPSAibGF0ZXgiLCBib29rdGFicyA9IFRSVUUsIGNhcHRpb24gPSAiRGVzY3JpcHRpdmUgU3RhdGlzdGljcyBvZiB5X3RyYWluIGFuZCB5X3Rlc3QiLCByb3cubmFtZXMgPSBGQUxTRSkgJT4lCiAga2FibGVfc3R5bGluZyhmdWxsX3dpZHRoID0gRkFMU0UsIHBvc2l0aW9uID0gImNlbnRlciIsIGxhdGV4X29wdGlvbnMgPSAic3RyaXBlZCIpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUUlVFLCBjb2xvciA9ICJ3aGl0ZSIsIGJhY2tncm91bmQgPSAiIzU2QjRFOSIpCn0KYGBgCgojIExBU1NPIAoKYGBge3J9CnhfdGVzdF9kZltpcy5uYSh4X3Rlc3RfZGYpXSA8LSAwCnhfdHJhaW5fZGZbaXMubmEoeF90cmFpbl9kZildIDwtIDAKCmNhdChkaW0oeF90cmFpbl9kZikpCmBgYAoKCiMjIExBU1NPIEJJQyAKCmBgYHtyfQpsYXNzby5iaWMgPC0gZnVuY3Rpb24oeSx4LGV4dGVuZGVkPUZBTFNFKSB7CiAgI1NlbGVjdCBtb2RlbCBpbiBMQVNTTyBwYXRoIHdpdGggYmVzdCBCSUMgKHVzaW5nIExBU1NPIHJlZ3Jlc3Npb24gZXN0aW1hdGVzKQogICNJbnB1dAogICMgLSB5OiB2ZWN0b3Igd2l0aCByZXNwb25zZSB2YXJpYWJsZQogICMgLSB4OiBkZXNpZ24gbWF0cml4CiAgIwogICNPdXRwdXQ6IGxpc3Qgd2l0aCB0aGUgZm9sbG93aW5nIGVsZW1lbnRzCiAgIyAtIGNvZWY6IExBU1NPLWVzdGltYXRlZCByZWdyZXNzaW9uIGNvZWZmaWNpZW50IHdpdGggbGFtYmRhIHNldCB2aWEgQklDCiAgIyAtIHlwcmVkOiBwcmVkaWN0ZWQgeQogICMgLSBsYW1iZGEub3B0OiBvcHRpbWFsIHZhbHVlIG9mIGxhbWJkYQogICMgLSBsYW1iZGE6IGRhdGEuZnJhbWUgd2l0aCBiaWMgYW5kIG51bWJlciBvZiBzZWxlY3RlZCB2YXJpYWJsZXMgZm9yIGVhY2ggdmFsdWUgb2YgbGFtYmRhCiAgcmVxdWlyZShnbG1uZXQpCiAgZml0IDwtIGdsbW5ldCh4PXgseT15LGZhbWlseT0nZ2F1c3NpYW4nLGFscGhhPTEpCiAgcHJlZCA8LSBjYmluZCgxLHgpICUqJSByYmluZChmaXQkYTAsZml0JGJldGEpCiAgbiA8LSBsZW5ndGgoeSkKICBwIDwtIGNvbFN1bXMoZml0JGJldGEhPTApICsgMQogIGlmICghZXh0ZW5kZWQpewogICAgYmljIDwtIG4gKiBsb2coY29sU3VtcygoeS1wcmVkKV4yKS9sZW5ndGgoeSkpICsgbioobG9nKDIqcGkpKzEpICsgbG9nKG4pKnAgCiAgfSBlbHNlIHsKICAgIGJpYyA8LSBuICogbG9nKGNvbFN1bXMoKHktcHJlZCleMikvbGVuZ3RoKHkpKSArIG4qKGxvZygyKnBpKSsxKSArIGxvZyhuKSpwICsgMipsb2coY2hvb3NlKG5jb2woeCkscCkpCiAgfQogIHNlbCA8LSB3aGljaC5taW4oYmljKQogIGJldGEgPC0gYyhmaXQkYTBbc2VsXSxmaXQkYmV0YVssc2VsXSk7IG5hbWVzKGJldGEpWzFdPSAnSW50ZXJjZXB0JwogIHlwcmVkIDwtIHByZWRbLHNlbF0KICBhbnMgPC0gbGlzdChjb2VmPWJldGEseXByZWQ9eXByZWQsbGFtYmRhLm9wdD1maXQkbGFtYmRhW3NlbF0sbGFtYmRhPWRhdGEuZnJhbWUobGFtYmRhPWZpdCRsYW1iZGEsYmljPWJpYyxudmFycz1wKSkKICByZXR1cm4oYW5zKQp9CmBgYAoKCmBgYHtyfQojIEZpdCBtb2RlbApmaXQubGFzc29fZWJpYyA9IGxhc3NvLmJpYyh4PWFzLm1hdHJpeCh4X3RyYWluX2RmKSwgeT15X3RyYWluICxleHRlbmRlZCA9IFRSVUUpCmZpdC5sYXNzb19lYmljCmBgYApgYGB7cn0KIyBMYW1iZGEKZml0Lmxhc3NvX2ViaWMkbGFtYmRhLm9wdAoKYGBgCgojIyMgT3VwdXQgY29lZmZpY2llbnRzIApgYGB7cn0KIyBFeHRyYWN0IGNvZWZmaWNpZW50cwpjb2VmX2xhc3NvX2ViaWMgPC0gZml0Lmxhc3NvX2ViaWMkY29lZgpjb2VmX21hdHJpeF9lYmljIDwtIGFzLm1hdHJpeChjb2VmX2xhc3NvX2ViaWMqMTAwKQoKIyBPdXRwdXQgbm9uIHplcm8gY29lZmZpY2llbnRzCm5vbl96ZXJvIDwtIGNvZWZfbWF0cml4X2ViaWMgIT0wCmNvZWZfdGFibGVfZWJpYyA8LSBkYXRhLmZyYW1lKFZhcmlhYmxlID0gcm93bmFtZXMoY29lZl9tYXRyaXhfZWJpYylbbm9uX3plcm9dLCBDb2VmZmljaWVudHMgPSBjb2VmX21hdHJpeF9lYmljW25vbl96ZXJvXSkKY29lZl90YWJsZV9lYmljIDwtIGNvZWZfdGFibGVfZWJpY1tvcmRlcigtYWJzKGNvZWZfdGFibGVfZWJpYyRDb2VmZmljaWVudHMpKSxdCmNvZWZfdGFibGVfZWJpYyRDb2VmZmljaWVudHMgPC0gcm91bmQoY29lZl90YWJsZV9lYmljJENvZWZmaWNpZW50cywgZGlnaXRzID0gNCkKY29lZl90YWJsZV9lYmljJENvZWZmaWNpZW50cyA8LSBmb3JtYXQoY29lZl90YWJsZV9lYmljJENvZWZmaWNpZW50cywgc2NpZW50aWZpYyA9IEZBTFNFKQpjb2VmX3RhYmxlX2ViaWNfb3V0cHV0IDwtIGNvZWZfdGFibGVfZWJpY1swOjIwLF0KY29lZl90YWJsZV9lYmljX291dHB1dAoKIyBPdXRwdXQgdG8gTGF0ZXgKb3V0cHV0X2xhc3NvX2ViaWMgPC0gRgppZiAob3V0cHV0X2xhc3NvX2ViaWMpIHsKICBrYWJsZShjb2VmX3RhYmxlX2ViaWNfb3V0cHV0LCBmb3JtYXQgPSAibGF0ZXgiLCBib29rdGFicyA9IFRSVUUsIGNhcHRpb24gPSAiTEFTU08gRUJJQyBSZWdyZXNzaW9uIHJlc3VsdHMiLCByb3cubmFtZXMgPSBGQUxTRSkgJT4lCiAga2FibGVfc3R5bGluZyhmdWxsX3dpZHRoID0gRkFMU0UsIHBvc2l0aW9uID0gImNlbnRlciIpICU+JQogIGNvbHVtbl9zcGVjKDEsIGJvcmRlcl9yaWdodCA9IFRSVUUpICU+JQogIGNvbHVtbl9zcGVjKDIsIHdpZHRoID0gIjJlbSIpICU+JQogIHJvd19zcGVjKDAsIGJvbGQgPSBUUlVFLCBjb2xvciA9ICJ3aGl0ZSIsIGJhY2tncm91bmQgPSAiIzU2QjRFOSIpCn0KYGBgCgoKIyMgTEFTU08gQ1YKCiMjIEZpdCBtb2RlbApgYGB7cn0KIyBGaXQgbW9kZWwKZml0Lmxhc3NvID0gY3YuZ2xtbmV0KHg9YXMubWF0cml4KHhfdHJhaW5fZGYpLCB5PXlfdHJhaW4sIG5mb2xkcz0xMCkKZml0Lmxhc3NvCmBgYAoKYGBge3J9CmZpdC5sYXNzbyRsYW1iZGEubWluCmBgYAoKIyMjVGVzdCBvdXQgb2Ygc2FtcGxlCgpgYGB7cn0KIyBURVNUOiBSTVNFOiAzMzA3NzEuMyBNQVBFOiAxNC4xNDUzNyBNQUU6IDE4NjU5OC4KcSA8LSByZWdyZXNzaW9uX21ldHJpY3MoZml0Lmxhc3NvLCB4X3Rlc3RfZGYsIHlfdGVzdCwgbnVtX3NjYWxlLCB5X3Rlc3Rfb3JpZykKCiMgVFJBSU46IFJNU0U6IDIyMjg3NC44IE1BUEU6IDEwLjM3NzU2IE1BRTogMTQyNDE4LjMKcSA8LSByZWdyZXNzaW9uX21ldHJpY3MoZml0Lmxhc3NvLCB4X3RyYWluX2RmLCB5X3RyYWluLCBudW1fc2NhbGUsIHlfdHJhaW5fb3JpZykKYGBgCgojIyMgT3VwdXQgY29lZmZpY2llbnRzIApgYGB7cn0KIyBFeHRyYWN0IGNvZWZmaWNpZW50cwpjb2VmX2xhc3NvIDwtIHByZWRpY3QoZml0Lmxhc3NvLCB0eXBlID0gImNvZWZmaWNpZW50cyIsIHMgPSBmaXQubGFzc28kbGFtYmRhLm1pbikKY29lZl9tYXRyaXggPC0gYXMubWF0cml4KGNvZWZfbGFzc28pCgojIE91dHB1dCBub24gemVybyBjb2VmZmljaWVudHMKbm9uX3plcm8gPC0gY29lZl9tYXRyaXggIT0wCmNvZWZfdGFibGUgPC0gZGF0YS5mcmFtZShWYXJpYWJsZSA9IHJvd25hbWVzKGNvZWZfbWF0cml4KVtub25femVyb10sIENvZWZmaWNpZW50cyA9IGNvZWZfbWF0cml4W25vbl96ZXJvXSkKY29lZl90YWJsZSA8LSBjb2VmX3RhYmxlW29yZGVyKC1hYnMoY29lZl90YWJsZSRDb2VmZmljaWVudHMpKSxdCmNvZWZfdGFibGUkQ29lZmZpY2llbnRzIDwtIHJvdW5kKGNvZWZfdGFibGUkQ29lZmZpY2llbnRzLCBkaWdpdHMgPSA0KQpjb2VmX3RhYmxlJENvZWZmaWNpZW50cyA8LSBmb3JtYXQoY29lZl90YWJsZSRDb2VmZmljaWVudHMsIHNjaWVudGlmaWMgPSBGQUxTRSkKY29lZl90YWJsZV9vdXRwdXQgPC0gY29lZl90YWJsZVswOjIwLF0KY29lZl90YWJsZV9vdXRwdXQKYGBgCiMjIyBPdXB1dCBjb2xsYXBzZWQgY29lZmZzIAoKYGBge3J9CiMgR3JvdXAgcHJlZml4ZXMgZm9yIHJlZ3Jlc3Npb24gb3V0cHV0CmNvZWZfdGFibGUgPC0gY29lZl90YWJsZSAlPiUKICBtdXRhdGUocHJlZml4ID0gY2FzZV93aGVuKAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgImFkZHJlc3Nfc2ltcGxlXyIpIH4gIkFkZHJlc3MgaW5kaWNhdG9ycyIsCiAgICBzdHJfZGV0ZWN0KFZhcmlhYmxlLCAiQUVEXyIpIH4gIkFFRCBleGNoYW5nZSByYXRlcyIsCiAgICBzdHJfZGV0ZWN0KFZhcmlhYmxlLCAiY29tbV8iKSB+ICJDb21tIHZhcmlhYmxlcyIsCiAgICBzdHJfZGV0ZWN0KFZhcmlhYmxlLCAiY29tbXVuaXR5XyIpIH4gIkNvbW11bml0eSBpbmRpY2F0b3JzIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJlbWlyYXRlXyIpIH4gIkVtaXJhdGUgdmFyaWFibGVzIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJhcmVhX3NxIikgfiAiQXJlYSBzcXVhcmVkIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJhcmVhIikgfiAiQXJlYSIsCiAgICBzdHJfZGV0ZWN0KFZhcmlhYmxlLCAiYmFsY29ueSIpIH4gIiMgQmFsY29ueXMiLAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgImJhdGhzX3NxIikgfiAiIyBCYWxjb255cyBzcXVhcmVkIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJiZWRfc3EiKSB+ICIjIEJlZHMgc3F1YXJlZCIsCiAgICBzdHJfZGV0ZWN0KFZhcmlhYmxlLCAiYmVkIikgfiAiIyBCZWRzIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJmdXJuaXNoZWQiKSB+ICIjIEZ1cm5pc2hlZCBpbmRpY2F0b3IiLAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgImdvbGQiKSB+ICJHb2xkIHByaWNlIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJtZXRybyIpIH4gIkRpc3RhbmNlIHRvIG1ldHJvIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJwYXJraW5nIikgfiAiUGFya2luZyBpbmRpY2F0b3IiLAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgImxvbiIpIH4gIkxvbmdpdHVkZSIsCiAgICBzdHJfZGV0ZWN0KFZhcmlhYmxlLCAiZ2RwIikgfiAiR0RQIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJob3NwaXRhbCIpIH4gIkRpc3RhbmNlIHRvIGhvc3BpdGFsIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJzdWJyZWdpb24iKSB+ICJSZWdpb24gaW5kaWNhdG9ycyAoYnkgZ2VvZ3JhcGhpYyBjb29yZGluYXRlcykiLAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgIm1hcmtldCIpIH4gIkRpc3RhbmNlIHRvIGdyb2Nlcnkgc3RvcmUiLAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgInBhcmtpbmciKSB+ICJQYXJraW5nIGluZGljYXRvciIsCiAgICBzdHJfZGV0ZWN0KFZhcmlhYmxlLCAic3ViZGlzdHJpY3QiKSB+ICJTdWJkaXN0cmljdCBpbmRpY2F0b3JzIiwKICAgIHN0cl9kZXRlY3QoVmFyaWFibGUsICJzd2ltbWluZ19wb29sIikgfiAiU3dpbW1pbmcgcG9vbCBpbmRpY2F0b3IiLAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgIlVTRF9CVEMiKSB+ICJVU0MtY3J5cHRvIGV4Y2hhbmdlIHJhdGUiLAogICAgc3RyX2RldGVjdChWYXJpYWJsZSwgIihJbnRlcmNlcHQpIikgfiAiKEludGVyY2VwdCkiLAogICAgVFJVRSB+ICJNaXNjIiAjIEZvciBhbGwgb3RoZXIgY2FzZXMKICApKQoKYGBgCgoKYGBge3J9CiMgQ29sbGFwc2UgdGhlIGRhdGFmcmFtZSB0byBvbmx5IGtlZXAgdGhlIGZpcnN0IGluc3RhbmNlIG9mIGVhY2ggcHJlZml4CiMgYW5kIGNvdW50IHRoZSBudW1iZXIgb2YgdmFyaWFibGVzIG9mIGVhY2ggdHlwZQpjb2VmX3RhYmxlJENvZWZmaWNpZW50cyA8LSBhcy5udW1lcmljKGNvZWZfdGFibGUkQ29lZmZpY2llbnRzKQpjb2xsYXBzZWRfY29lZl9tYXRyaXggPC0gY29lZl90YWJsZSAlPiUKICBncm91cF9ieShwcmVmaXgpICU+JQogIHN1bW1hcmlzZShNZWFuID0gbWVhbigxMDAqQ29lZmZpY2llbnRzKSwKICAgICAgICAgICAgTWluID0gbWluKDEwMCpDb2VmZmljaWVudHMpLAogICAgICAgICAgICBNYXggPSBtYXgoMTAwKkNvZWZmaWNpZW50cyksCiAgICAgICAgICAgIENvdW50ID0gbigpKSAlPiUKICBtdXRhdGUoTWVhbiA9IHJvdW5kKE1lYW4sIDIpLAogICAgICAgICBNaW4gPSByb3VuZChNaW4sIDIpLAogICAgICAgICBNYXggPSByb3VuZChNYXgsIDIpKSAlPiUKICBhcnJhbmdlKGRlc2MoQ291bnQpKSAgIyBTb3J0aW5nIGJ5IE1heCBpbiBkZXNjZW5kaW5nIG9yZGVyCgojIE91dHB1dCB0byBMYXRleApvdXRwdXRfbGFzc29fMiA8LSBGCmlmIChvdXRwdXRfbGFzc29fMikgewogIGthYmxlKGNvbGxhcHNlZF9jb2VmX21hdHJpeCwgZm9ybWF0ID0gImxhdGV4IiwgYm9va3RhYnMgPSBUUlVFLCBjYXB0aW9uID0gIkxBU1NPIFJlZ3Jlc3Npb24gcmVzdWx0cyIsIHJvdy5uYW1lcyA9IEZBTFNFKSAlPiUKICBrYWJsZV9zdHlsaW5nKGZ1bGxfd2lkdGggPSBGQUxTRSwgcG9zaXRpb24gPSAiY2VudGVyIikgJT4lCiAgY29sdW1uX3NwZWMoMSwgYm9yZGVyX3JpZ2h0ID0gVFJVRSkgJT4lCiAgY29sdW1uX3NwZWMoMiwgd2lkdGggPSAiMmVtIikgJT4lCiAgcm93X3NwZWMoMCwgYm9sZCA9IFRSVUUsIGNvbG9yID0gIndoaXRlIiwgYmFja2dyb3VuZCA9ICIjNTZCNEU5IikKfQpgYGAKCgojIyMgSW52ZXN0aWdhdGUgcGVyY2VudGFnZSBlcnJvcgpgYGB7cn0KIyBBdmVyYWdlIHBlcmNlbnRhZ2UgZXJyb3IgCnByZWQgPC0gcHJlZGljdChmaXQubGFzc28sIG5ld3ggPSBhcy5tYXRyaXgoeF90ZXN0X2RmKSwgcyA9IGZpdC5sYXNzbyRsYW1iZGEubWluLCB0eXBlID0gInJlc3BvbnNlIikKICAKaWYgKGxvZ19wcmljZSkgewogICAgcHJlZCA8LSBleHAocHJlZCkKICAgIHlfdGVzdCA8LSB5X3Rlc3Rfb3JpZwp9Cgpjb21wYXJlX2RmIDwtIGRhdGEuZnJhbWUoeV90ZXN0ID0geV90ZXN0LCBwcmVkaWN0aW9ucyA9IHByZWQpCmNvbXBhcmVfZGYkcGVyY19lcnJvciA8LSBhYnMoKGNvbXBhcmVfZGYkeV90ZXN0LWNvbXBhcmVfZGYkczEpL2NvbXBhcmVfZGYkeV90ZXN0KSoxMDAKY29tcGFyZV9kZiRlcnJvciA8LSBhYnMoY29tcGFyZV9kZiRzMSAtY29tcGFyZV9kZiR5X3Rlc3QpCgojIENhbGN1bGF0ZSB0aGUgZGVjaWxlcwpkZWNpbGVzIDwtIHF1YW50aWxlKGNvbXBhcmVfZGYkcGVyY19lcnJvciwgcHJvYnMgPSBzZXEoMCwgMSwgYnkgPSAwLjEpLCBuYS5ybSA9IFRSVUUpCnByaW50KGRlY2lsZXMpCmBgYAoKIyMjIEdyYXBocyAKYGBge3J9CiMgUHJlcGFyZSBkYXRhIGZvciBncmFwaHMgCnRlc3RfZ3JhcGggPC0gZGF0YS5mcmFtZSh4X3Rlc3RfdW5zY2FsZWQpCnRlc3RfZ3JhcGgkcGVyY19lcnJvciA8LSBjb21wYXJlX2RmJHBlcmNfZXJyb3IKdGVzdF9ncmFwaCRlcnJvciAgPC0gY29tcGFyZV9kZiRlcnJvcgoKdGVzdF9ncmFwaCRwcmljZSA8LSBjb21wYXJlX2RmJHlfdGVzdAp0ZXN0X2dyYXBoIApgYGAKYGBge3J9CiMgR3JhcGggYWJzIGVycm9yCnBsb3RfYWJzX2Vycm9yPC0gZ2dwbG90KHRlc3RfZ3JhcGgsIGFlcyh4ID0gcHJpY2UsIHkgPSBlcnJvcikpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIGdlb21fcG9pbnQoY29sb3IgPSAnIzFmNzdiNCcgLHNpemUgPSAwLjUpICsgICMgU2NhdHRlciBwbG90IHBvaW50cwogIHhsYWIoIlByaWNlIikgKwogIHlsYWIoIkFic29sdXRlIEVycm9yIikgKyAKICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibm9uZSIsCiAgICAgICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYpLCAgIyBBZGp1c3QgdGhlIGZvbnQgc2l6ZSBoZXJlCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYpLCAgIyBBZGp1c3QgdGhlIHRpdGxlIGZvbnQgc2l6ZQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApKSArICAjIEFkanVzdCB0aGUgYXhpcyB0ZXh0IGZvbnQgc2l6ZQogIHNjYWxlX3hfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OmNvbW1hKSAKcGxvdF9hYnNfZXJyb3IKYGBgCgoKCmBgYHtyfQojIEdyYXBoIHByZWRpY3Rpb24gZXJyb3IKCiNQcmVwYXJlIGRhdGEKdGVzdF9ncmFwaF9kdCA8LSB0ZXN0X2dyYXBoICU+JSBhcy5kYXRhLnRhYmxlCgp0ZXN0X2dyYXBoX2R0WywgY29tbXVuaXR5IDo9ICdEdWJhaSBNYXJpbmEnXQoKdGVzdF9ncmFwaF9kdDwtIHRlc3RfZ3JhcGhfZHQgJT4lCiAgLltjb21tdW5pdHlfSnVtZWlyYWguQmVhY2guUmVzaWRlbmNlLi5KQlIuPT1ULCBjb21tdW5pdHkgOj0gJ0p1bWVpcmFoIEJlYWNoIFxuIFJlc2lkZW5jZSAoSkJSKSddICU+JQogIC5bY29tbXVuaXR5X0p1bWVpcmFoLkxha2UuVG93ZXJzLi5KTFQuPT1ULCBjb21tdW5pdHkgOj0gJ0p1bWVpcmFoIExha2UgXG4gVG93ZXJzIChKTFQpJ10gJT4lCiAgLltjb21tdW5pdHlfSnVtZWlyYWguVmlsbGFnZS5DaXJjbGUuLkpWQy49PVQsIGNvbW11bml0eSA6PSAnSnVtZWlyYWggVmlsbGFnZSBcbiBDaXJjbGUgKEpWQyknXQoKCnBsb3RfcGVyY19lcnJvcl9jb21tdW5pdHkgPC0gZ2dwbG90KHRlc3RfZ3JhcGhfZHRbdGVzdF9ncmFwaF9kdCRwZXJjX2Vycm9yIDwgMTAwXSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh5PWNvbW11bml0eSwgeD1wZXJjX2Vycm9yLCBjb2xvcj1jb21tdW5pdHkpKSArIAogIGdlb21fdmlvbGluKGFlcyhmaWxsID0gY29tbXVuaXR5LAogICAgICAgICAgICAgICAgICBmaWxsID0gYWZ0ZXJfc2NhbGUoY29sb3JzcGFjZTo6bGlnaHRlbihmaWxsLCAuMikpKSwKICAgICAgICAgICAgICBkcmF3X3F1YW50aWxlcyA9IGMoMC4wNSwgMC4yNSwgMC41LCAwLjc1LCAwLjk1KSwKICAgICAgICAgICAgICBzaXplID0gMC4yLCBzY2FsZT0nd2lkdGgnLCBjb2xvdXIgPSAiYmxhY2siKSArCiAgc3RhdF9zdW1tYXJ5KGZ1bj1tZWFuLCBnZW9tPSJwb2ludCIsIHNoYXBlPTE2LCBzaXplPTMsIGNvbG9yPSJibGFjayIpICsgIyBIaWdobGlnaHQgdGhlIG1lYW4gaW4gcmVkCiAgdGhlbWVfbWluaW1hbCgpICsgCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJub25lIiwKICAgICAgICB0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNiksIAogICAgICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2KSwKICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwKICAgICAgICBheGlzLnRpY2tzID0gZWxlbWVudF9saW5lKHNpemUgPSAwLjgpLAogICAgICAgIGF4aXMudGl0bGUueS5sZWZ0PWVsZW1lbnRfdGV4dChjb2xvcj0iYmxhY2siLCBzaXplPTE0KSwKICAgICAgICBheGlzLnRleHQueS5sZWZ0PWVsZW1lbnRfdGV4dChjb2xvcj0iYmxhY2siLCBzaXplPTEyKSwKICAgICAgICBheGlzLnRpdGxlLnkucmlnaHQ9ZWxlbWVudF90ZXh0KGNvbG9yPSJibGFjayIsIHNpemU9MTQpLAogICAgICAgIGF4aXMudGV4dC55LnJpZ2h0PWVsZW1lbnRfdGV4dChjb2xvcj0iYmxhY2siLCBzaXplPTE0KSwKICAgICAgICBheGlzLnRleHQueD1lbGVtZW50X3RleHQoc2l6ZT0xMiksCiAgICAgICAgYXhpcy50aXRsZS54PWVsZW1lbnRfdGV4dChzaXplPTE2KSwKICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGhqdXN0ID0gMC41LCBzaXplID0gMTYsIGZhY2UgPSAiYm9sZCIpKSArCiAgc2NhbGVfeF9jb250aW51b3VzKGxhYmVscyA9IHNjYWxlczo6Y29tbWEpICsKICBsYWJzKHk9JycsIHg9IlByZWRpY3Rpb24gRXJyb3IgKCUpIikgCnBsb3RfcGVyY19lcnJvcl9jb21tdW5pdHkKCmBgYApgYGB7cn0KIyBHcmFwaCBwZXJjZW50YWdlIGVycm9yCnBsb3RfcGVyY19lcnJvcjwtIGdncGxvdCh0ZXN0X2dyYXBoLCBhZXMoeCA9IHByaWNlLCB5ID0gcGVyY19lcnJvcikpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIGdlb21fcG9pbnQoY29sb3IgPSAnIzFmNzdiNCcgLHNpemUgPSAwLjUpICsgICMgU2NhdHRlciBwbG90IHBvaW50cwogIHhsYWIoIlByaWNlIikgKwogIHlsYWIoIlBlcmNlbnRhZ2UgRXJyb3IiKSArIAogICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPSJub25lIiwKICAgICAgICB0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNiksICAjIEFkanVzdCB0aGUgZm9udCBzaXplIGhlcmUKICAgICAgICBheGlzLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNiksICAjIEFkanVzdCB0aGUgdGl0bGUgZm9udCBzaXplCiAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCkpICsgICMgQWRqdXN0IHRoZSBheGlzIHRleHQgZm9udCBzaXplCiAgc2NhbGVfeF9jb250aW51b3VzKGxhYmVscyA9IHNjYWxlczo6Y29tbWEpIApwbG90X3BlcmNfZXJyb3IKYGBgCgpgYGB7cn0KdGVzdF9ncmFwaCRjb21tdW5pdHlfdmFyIDwtIHRlc3RfZ3JhcGhfZHQkY29tbXVuaXR5CgpkdWJhaV9tYXJpbmFfZGF0YSA8LSB0ZXN0X2dyYXBoICU+JSAKICBmaWx0ZXIoY29tbXVuaXR5X3ZhciA9PSAnRHViYWkgTWFyaW5hJykKCiMgR3JhcGggcGVyY2VudGFnZSBlcnJvciBmb3IgRHViYWkgTWFyaW5hCnBsb3RfcGVyY19lcnJvcjwtIGdncGxvdChkdWJhaV9tYXJpbmFfZGF0YSwgYWVzKHggPSBwcmljZSwgeSA9IHBlcmNfZXJyb3IpKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICBnZW9tX3BvaW50KGNvbG9yID0gJyMxZjc3YjQnICxzaXplID0gMC41KSArICAjIFNjYXR0ZXIgcGxvdCBwb2ludHMKICB4bGFiKCJQcmljZSIpICsKICB5bGFiKCJQZXJjZW50YWdlIEVycm9yIikgKyAKICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibm9uZSIsCiAgICAgICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYpLCAgIyBBZGp1c3QgdGhlIGZvbnQgc2l6ZSBoZXJlCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYpLCAgIyBBZGp1c3QgdGhlIHRpdGxlIGZvbnQgc2l6ZQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApKSArICAjIEFkanVzdCB0aGUgYXhpcyB0ZXh0IGZvbnQgc2l6ZQogIHNjYWxlX3hfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OmNvbW1hKSAKcGxvdF9wZXJjX2Vycm9yCmBgYAoKYGBge3J9CiMgU3VtbWFyeSB0YWJsZSAKc3VtbWFyeV90YWJsZSA8LSB0ZXN0X2dyYXBoX2R0ICU+JQogIGdyb3VwX2J5KGNvbW11bml0eSkgJT4lCiAgc3VtbWFyaXNlKAogICAgUTEgPSBwYXN0ZTAocm91bmQocXVhbnRpbGUocGVyY19lcnJvciwgMC4yNSwgbmEucm0gPSBUUlVFKSwgMiksICIlIiksCiAgICBNZWRpYW4gPSBwYXN0ZTAocm91bmQobWVkaWFuKHBlcmNfZXJyb3IsIG5hLnJtID0gVFJVRSkgLCAyKSwgIiUiKSwKICAgIE1lYW4gPSBwYXN0ZTAocm91bmQobWVhbihwZXJjX2Vycm9yLCBuYS5ybSA9IFRSVUUpLCAyKSwgIiUiKSwKICAgIFEzID0gcGFzdGUwKHJvdW5kKHF1YW50aWxlKHBlcmNfZXJyb3IsIDAuNzUsIG5hLnJtID0gVFJVRSksIDIpLCAiJSIpLAogICkKCnByaW50KHN1bW1hcnlfdGFibGUpCgpzdW1tYXJ5X3RhYl9vdXRwdXQ8LUYgCgppZiAoc3VtbWFyeV90YWJfb3V0cHV0KSB7CiAga2FibGUoc3VtbWFyeV90YWJsZSwgImxhdGV4IiwgYm9va3RhYnMgPSBUUlVFLCBjYXB0aW9uID0gIlN1bW1hcnkgVGFibGUgb2YgcGVyY19lcnJvciBieSBjb21tdW5pdHkiKSAlPiUKICBrYWJsZV9zdHlsaW5nKGxhdGV4X29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgInNjYWxlX2Rvd24iKSkgJT4lCiAgYWRkX2hlYWRlcl9hYm92ZShjKCIgIiA9IDEsICJTdGF0aXN0aWNzIiA9IDUpKSAlPiUKICBjb2x1bW5fc3BlYygxLCBib2xkID0gVFJVRSwgY29sb3IgPSAid2hpdGUiLCBiYWNrZ3JvdW5kID0gIiM1NkI0RTkiKSAlPiUKICBjb2x1bW5fc3BlYygyOjYsIGJhY2tncm91bmQgPSAiI0YwRjBGMCIpCn0KYGBgCgoKYGBge3J9CiMgR2V0IGNvbW11bml0eSB2YXJpYWJsZQp0cmFpbl9kdCA8LSByYXdfdHJhaW4gJT4lIGFzLmRhdGEudGFibGUKCnRyYWluX2R0WywgY29tbXVuaXR5IDo9ICdEdWJhaSBNYXJpbmEnXQoKdHJhaW5fZHQ8LSB0cmFpbl9kdCAlPiUKICAuW2NvbW11bml0eV9KdW1laXJhaC5CZWFjaC5SZXNpZGVuY2UuLkpCUi49PVQsIGNvbW11bml0eSA6PSAnSnVtZWlyYWggQmVhY2ggXG4gUmVzaWRlbmNlIChKQlIpJ10gJT4lCiAgLltjb21tdW5pdHlfSnVtZWlyYWguTGFrZS5Ub3dlcnMuLkpMVC49PVQsIGNvbW11bml0eSA6PSAnSnVtZWlyYWggTGFrZSBcbiBUb3dlcnMgKEpMVCknXSAlPiUKICAuW2NvbW11bml0eV9KdW1laXJhaC5WaWxsYWdlLkNpcmNsZS4uSlZDLj09VCwgY29tbXVuaXR5IDo9ICdKdW1laXJhaCBWaWxsYWdlIFxuIENpcmNsZSAoSlZDKSddCgoKIyBVbmRlcnN0YW5kIGhpZ2ggcHJlZGljdGlvbiBlcnJvcnMKaW52ZXN0aWdhdGVfdHJhaW4gPC1jYmluZChleHAoeV90cmFpbl9kZiksIGFkZHJlc3MgPSByYXdfdHJhaW4kYWRkcmVzc19zaW1wbGUsIHN1YmRpc3RyaWN0ID1yYXdfdHJhaW4kc3ViZGlzdHJpY3QsIGNvbW11bml0eSA9IHRyYWluX2R0JGNvbW11bml0eSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAppbnZlc3RpZ2F0ZV90ZXN0IDwtY2JpbmQoZXhwKHlfdGVzdF9kZiksIHByZWRpY3Rpb24gPSBwcmVkLCB0ZXN0X2dyYXBoX2R0JHBlcmNfZXJyb3IsIGFkZHJlc3MgPSByYXdfdGVzdCRhZGRyZXNzX3NpbXBsZSwgc3ViZGlzdHJpY3QgPXJhd190ZXN0JHN1YmRpc3RyaWN0LCBjb21tdW5pdHkgPSB0ZXN0X2dyYXBoX2R0JGNvbW11bml0eSkKCiMgQ2FjdWxhdGUgbWVhbiB2YWx1ZXMgYnkgcmVnaW9uIGluIHRyYWluCgp2YXJpYWJsZXMgPC0gYygicHJpY2UiKSAKCmludmVzdGlnYXRlX3RyYWluIDwtIGludmVzdGlnYXRlX3RyYWluICU+JQogIGdyb3VwX2J5KGFkZHJlc3MpICU+JQogIG11dGF0ZShhY3Jvc3MoYWxsX29mKHZhcmlhYmxlcyksIH5tZWFuKC54LCBuYS5ybSA9IFRSVUUpLCAubmFtZXMgPSAibWVhbl97LmNvbH1fYWRkcmVzcyIpKSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgZ3JvdXBfYnkoc3ViZGlzdHJpY3QpICU+JQogIG11dGF0ZShhY3Jvc3MoYWxsX29mKHZhcmlhYmxlcyksIH5tZWFuKC54LCBuYS5ybSA9IFRSVUUpLCAubmFtZXMgPSAibWVhbl97LmNvbH1fc3ViIikpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBncm91cF9ieShjb21tdW5pdHkpICU+JQogIG11dGF0ZShhY3Jvc3MoYWxsX29mKHZhcmlhYmxlcyksIH5tZWFuKC54LCBuYS5ybSA9IFRSVUUpLCAubmFtZXMgPSAibWVhbl97LmNvbH1fY29tIikpICU+JQogIHVuZ3JvdXAoKQoKIyBEcm9wIGR1cGxpY2F0ZXMKaW52ZXN0aWdhdGVfdHJhaW4gPC0gc2VsZWN0KGludmVzdGlnYXRlX3RyYWluLCAtdmFyaWFibGVzKQppbnZlc3RpZ2F0ZV90cmFpbiA8LSBpbnZlc3RpZ2F0ZV90cmFpbiAlPiUgCiAgZGlzdGluY3QoKQoKIyBNZXJnZSB3aXRoIHRlc3QKbWVyZ2VkX2RmIDwtIG1lcmdlKGludmVzdGlnYXRlX3Rlc3QsIGludmVzdGlnYXRlX3RyYWluLCBieS54PWMoImFkZHJlc3MiLCAic3ViZGlzdHJpY3QiLCAiY29tbXVuaXR5IiksIGJ5Lnk9YygiYWRkcmVzcyIsICJzdWJkaXN0cmljdCIsICJjb21tdW5pdHkiKSwgYWxsLng9VFJVRSkKCm1lcmdlZF9kZiRkaWZmX2FkZCA8LSAoKG1lcmdlZF9kZiRwcmljZSAtIG1lcmdlZF9kZiRtZWFuX3ByaWNlX2FkZHJlc3MpL21lcmdlZF9kZiRtZWFuX3ByaWNlX2FkZHJlc3MpKjEwMAptZXJnZWRfZGYkZGlmZl9yZWdpb24gPC0gKChtZXJnZWRfZGYkcHJpY2UgLSBtZXJnZWRfZGYkbWVhbl9wcmljZV9zdWIpL21lcmdlZF9kZiRtZWFuX3ByaWNlX3N1YikqMTAwCm1lcmdlZF9kZiRkaWZmX2NvbSA8LSAoKG1lcmdlZF9kZiRwcmljZSAtIG1lcmdlZF9kZiRtZWFuX3ByaWNlX2NvbSkvbWVyZ2VkX2RmJG1lYW5fcHJpY2VfY29tKSoxMDAKYGBgCgoKYGBge3J9CiMgSW52ZXN0aWdhdGVtYXggZXJyb3Igb2JzZXJ2YXRpb24KdW5kZXJzdGFuZCA8LSBjYmluZChwZXJjID0gdGVzdF9ncmFwaF9kdCRwZXJjX2Vycm9yLCB4X3Rlc3RfZGYpCm1heF9lcnJvcl9yb3cgPC0gdW5kZXJzdGFuZFt3aGljaC5tYXgodW5kZXJzdGFuZCRwZXJjKSwgXQoKIyBGaXJzdCwgdHJhbnNwb3NlICdtYXhfZXJyb3Jfcm93JyBhbmQgY29udmVydCBpdCB0byBhIGRhdGFmcmFtZQptYXhfZXJyb3Jfcm93X3QgPC0gYXMuZGF0YS5mcmFtZSh0KG1heF9lcnJvcl9yb3cpKQoKCiMgQ29sdW1uLWJpbmQgdGhlIHRyYW5zcG9zZWQgbWF4X2Vycm9yX3JvdyB3aXRoIGNvZWZfbGFzc28KdW5kZXJzdGFuZF90ZXN0IDwtIGNiaW5kKGNvZWZfbWF0cml4LCBtYXhfZXJyb3Jfcm93X3QpCgp1bmRlcnN0YW5kX3Rlc3Qkb3V0cHV0IDwtIHVuZGVyc3RhbmRfdGVzdCRzMSAqIHVuZGVyc3RhbmRfdGVzdCRgMzE3OWAKYGBgCgoKCgo=